Embers.cafe is where my iOS work lives. Small apps, written in Swift, each one built to do a single job properly on the device it runs on. Nothing is rushed out to hit a date, because nobody is waiting on a roadmap but me.
Swift and SwiftUI throughout. No web view pretending to be an app, so gestures, animation and battery behave the way iOS users expect.
Every app does one thing and stops. That is why they stay quick to open, easy to explain and cheap to keep running.
Built in the evenings, released when the last rough edge is gone. Waiting a fortnight beats shipping something I would need to apologise for.
Anything that needs a server runs on Cloudflare, close to the person holding the phone, and costs almost nothing to keep alive.
Uptime Kuma monitoring, on your wrist. Your self-hosted monitors on the home screen and the watch face, so an outage reaches you before your users do.
Daylight, tracked from sunrise to sunset. A quiet record of how much light you actually got today, for the months when the answer is not much.
Push notifications, built for the AI era. A simple way for scripts, servers and agents to reach your phone when something needs a human.
Your self-hosted Wallos subscriptions, in your pocket. See what this month costs, renew in a tap, and get reminded before the money leaves, even when your server is offline.
Each app started as a gap in my own day. That is a better brief than a market gap, and it means there is always one user who cares whether the detail is right.
An evening project dies the moment it grows a backlog. Scope stays tight on purpose, so the app reaches the App Store instead of the graveyard.
Shipping is the start. Bug reports get answered by the person who wrote the bug, and every app on the shelf still gets updates.
I take on a small amount of iOS work alongside the studio. Tell me what it needs to do and I will tell you honestly whether I am the right person to build it.