Eve, Fit and Censory look like three unrelated products. One is an event-planning marketplace, one is a personalized meal planner, one is an AI privacy-redaction tool. Underneath, they share a delivery pattern we keep returning to because it keeps paying off: build a strong web core, design mobile-first, and reach for a PWA before committing to a native shell you do not yet need. Different domains, same spine.
Web-first is a distribution decision as much as a technical one. A web core means one codebase to reason about, instant updates with no app-store review in the loop, and a link you can send to anyone on any device. Censory ships as a mobile-first PWA that installs to the home screen today, with a native shell planned for when the product has earned it — not as a checkbox on day one. The order matters: prove the product on the web, add the native wrapper when there is a concrete reason, not before.
The interesting engineering is rarely the framework — it is the domain-specific UX each product needs, and web gives us room to get that right. Eve carries a two-sided marketplace: seekers search venues and services by location, headcount, date and event type, while providers register and list on the other side. Two-sided flows are their own design problem, and doing them in one web core lets both sides evolve together instead of drifting apart across separate native apps.
Fit is a generation problem wearing a consumer-app skin. It takes a diet preference, a calorie target, a budget and a schedule, and produces a coherent weekly meal plan — then keeps a grocery list and a virtual pantry in sync as things change so food does not get bought twice or wasted. The value is in the generation and the state that flows out of it, and a web core is a comfortable place to iterate on that logic fast without shipping a binary every time the algorithm improves.
Censory sits at the other extreme, with the heaviest technical demands — content-stream manipulation, AI detection, strict privacy handling — and it still fits the same pattern. That is the real argument for the approach: one delivery model stretched across a marketplace, a generative planner, and a privacy tool, without a bespoke platform strategy for each. "App-ready" mobile-first web means the product feels native on a phone from the first release, and the native shell becomes an option you exercise on evidence rather than a cost you pay up front.
We are not dogmatic about it — some products genuinely need native, and when one does, that is where we go. But the default of a web core, a mobile-first surface, and PWA install ships faster, updates cleaner, and keeps the team focused on the domain problem that actually differentiates the product. Across three very different builds, that default has held up.