Skip to content
← All posts
1 min read

Shipping a focus-timer SaaS solo: how ZenFocus is put together

ZenFocus is a Pomodoro-style focus timer with break suggestions, daily progress stats and focus sounds. The stack is deliberately boring: React + TypeScript + Vite on the front, Supabase for sign-in and data, and Capacitor to ship the same codebase as an Android app. Pro features are gated behind sign-in.

What I would repeat

  • Vite for build speed. Instant feedback matters more than any framework feature when you work alone.
  • Supabase for not running my own auth. Solo projects die on undifferentiated plumbing.
  • Capacitor for one codebase across web and Android, instead of maintaining two.

What I would watch

Gating features early forces you to think about which parts of the product are actually worth paying for. That is a useful forcing function, but it also means every gated feature has to earn its place twice: once as a feature, once as a reason to sign in.