Skip to content
FocusedCat
Build notes

One small VPS, on purpose

Ivan · FocusedCat Studio

May 23, 2026


FocusedCat doesn't run on Vercel, and there's no Neon database, and there's no preview environment spun up per pull request. It runs on one Hetzner box — a single VPS with the Rails app and a self-hosted Postgres sitting on the same machine.

That sounds almost quaint next to a modern managed stack, and it is a deliberate choice (ADR 0011), not an oversight. Managed platforms are excellent at hiding operational work you don't want to think about — until the day you do, at which point you're debugging someone else's abstraction instead of your own server.

What's actually pointed where

Cloudflare handles DNS in front of the box. app.focusedcat.com exists as a domain, but it's intentionally left unpointed — nothing is served there yet, on purpose, until the launch gate that governs what's allowed to go live actually clears. Better an empty subdomain than a live surface nobody signed off on.

There are only two environments in the whole setup: local, which is whatever developer machine is doing the work, and dev, which is this one deployed box. No staging, no per-PR preview, no fleet of ephemeral databases to keep in sync.

The honest takeaway is that boring, owned infrastructure has been easier to reason about than managed sprawl would have been for a single builder. One box, one database, one person who knows exactly how both are configured — that's a smaller surface to hold in your head than a dozen managed services stitched together, even if it looks less impressive on a diagram.