The studio

Why I Build This Way

I'm Geoff. I'm a solo indie developer with a day job, a side project habit I can't shake, and an honest admission that I didn't learn to code the traditional way.

I started by downloading Xcode, watching half a tutorial, and asking an AI chatbot to help me build a countdown timer. The first app was rough. The submission process was harder than the code. But it shipped, and that was enough to keep going.

Three live apps later (and a few retired experiments), I'm still here. I vibe-code — meaning I use AI as an engineering partner, not a magic button. I read what it writes. I debug what it breaks. I learn the framework as I go. It's not the traditional path, and I don't pretend it is.

The Philosophy

Every app I ship follows the same rule: do one thing well, then stop. No feature creep for the sake of a roadmap. No dark patterns. No subscriptions extracting value month after month for an app that hasn't changed. If I charge, it's a one-time purchase — because that's the only model I'd personally accept.

I build fast, but fast doesn't mean broken. Moving quickly means I spend less time on boilerplate and more time on the stuff that actually matters — accessibility, VoiceOver support, localization, testing on real devices. The things that get cut first when a team is burning through a deadline are the things I prioritize because nobody's making me skip them.

The Name

"Low Effort" isn't about cutting corners. It's about cutting friction. The apps should feel effortless to use — simple enough that you forget they're there, useful enough that you notice when they're not.

Building in Public

I write about the process on Substack — the wins, the dead ends, the five apps still sitting half-finished in Xcode. If you're curious about what vibe-coding actually looks like when you're honest about it, that's where it lives.