Website development & hosting
Websites for people, small businesses and clubs, including hosting, the domain and keeping it up to date afterwards.
software developer / styria, austria
I'm a developer from south-east Styria and a student at HTL Kaindorf. I build apps for the Mac and the iPhone, developer tools and automations, and I help people nearby with websites, repairs and everyday technology.
Transit, without the guesswork.
A public-transport app for all of Austria: departures, routes and step-by-step guidance, on the iPhone, the Apple Watch and the lock screen. Every time says where it came from, and when a transfer gets tight, ÖffiGo already has a plan B. No ads, no account.
where the time comes from
Some times are reported, some are calculated, some are only scheduled. The row on the board tells you which one you are reading, and ÖffiGo's own estimate never replaces the operator's.
Your stop with every line, delays, platform changes and cancellations, and a label on each time saying whether it is live, realtime or timetable.
When a delay costs you the transfer, ÖffiGo works out an alternative from where you are. It only suggests one that saves at least three minutes.
Save a trip or a whole line. ÖffiGo keeps checking while the app is closed and tells you once when something changes.
A full app on the wrist, and the next stop on the lock screen and in the Dynamic Island without unlocking.
highlights
A coding agent for your terminal that runs on local models and asks before it touches anything.
TypeScript · Ollama · TerminalA native macOS code editor that opens instantly, without the Electron bloat.
Swift · SwiftUI · AppKitA native macOS device lab that bridges a real Bluetooth LE device into an emulator.
Swift · SwiftUI · Bluetooth LEMac Apps
A lightweight native macOS runner for Windows apps.
Swift · SwiftUI · WineYour AirPods as a posture coach, fully on-device.
Swift · macOS · Menu BarSwitch between Claude Code accounts from the menu bar, with live usage meters.
Swift · macOS · Menu BarRecover the menu bar icons the MacBook notch swallows.
Swift · macOS · Menu BarA desktop companion for Claude Code that costs zero idle CPU.
Swift · AppKit · Core AnimationmacOS menu bar control for local dev ports.
Swift · macOS · Menu BarSlap your MacBook and it knows. Real accelerometer, no microphone.
Swift · macOS · SensorsAgents and developer tools
Read-only Apple Health context for MCP-capable agents.
TypeScript · MCP · HealthKitDiscord Rich Presence for Claude Code and Codex. One static binary, no bot token.
Rust · Discord · CLISelf-hosted voice for the Hermes agent, straight in a Discord call.
TypeScript · Discord · WhisperTalk to a local OpenClaw agent through a Discord voice channel.
TypeScript · Discord · VoiceMore Projects
This site: a portfolio that reads its own release data from GitHub.
Astro · TypeScript · VercelThe product site behind oeffigo.app, with a public data status page.
Astro · TypeScript · CloudflareMerge, split, rotate and convert PDFs and images, entirely in your browser.
TypeScript · Vite · pdf-libInternet radio, brought back to first-gen T+A Caruso systems.
TypeScript · UPnP · DLNAA focused terminal toolkit for IP, DNS, RDAP, HTTP, and subnet diagnostics.
Python · CLI · NetworkingBatch-convert DOCX to PDF using Word itself as the engine.
TypeScript · macOS · WordA controlled typing automation tool for predictable browser and desktop workflows.
TypeScript · CLI · AutomationAlongside my own projects I help people and small businesses in the area with everyday technology. On-site nearby, remote everywhere else.
Websites for people, small businesses and clubs, including hosting, the domain and keeping it up to date afterwards.
PC and Mac repair, setting up new devices, printers and peripherals, getting things running again.
Fixing everyday tech problems, backups and updates, explained in plain words.
Small macOS utilities, scripts, and automations for when off-the-shelf software isn't enough.
What I work with
about
I live in south-east Styria and study at HTL Kaindorf. Most of what I build starts as a problem I ran into myself: a workflow that takes too many steps, a device that won't cooperate, an app that should exist and doesn't. I work with TypeScript, Swift and Python, but the stack matters less than whether the finished thing actually gets used.
Websites, tools and support: yes, anywhere. Repairs and device setup happen on site in south-east Styria.
It depends on what it has to do, and whether hosting, domain and maintenance come with it. Write me two sentences about what you have in mind and we'll talk it through.
contact@johannesgrof.me, or the form below. LinkedIn and GitHub work too.
contact
Need a website, a repair, tech support, or a small custom tool? Send me a message below, or reach out by email.