I took a full travel platform — bookings, payments, internationalization — from zero to deployed solo in about six weeks, and the thing that made that pace possible was owning the infrastructure rather than renting a service I couldn't see into.

Own the infra to move faster, not slower

Self-hosted Supabase on a VPS, provisioned with setup scripts and shipped through a GitHub Actions pipeline. The usual fear is that self-hosting slows you down; past a certain point it's the opposite — no black-box limits to design around, and predictable cost you fully control.

Proxy the awkward bits

Rather than fighting CORS and third-party constraints from the client, I routed them through the app's own API routes. Turning a browser-security problem into a plain server-to-server call removes a whole class of flaky, hard-to-debug failures.

Content and locale are product, not afterthoughts

A Sanity studio modeled the real content — treks, festivals, peaks — and internationalization plus SSR info pages were there from the first week, not bolted on. That's the difference between a demo and something people in two languages can actually use and find in search.