Our default stack is a deliberate choice for speed, simplicity, and long-term maintainability.
Tooling is a values statement. Our default stack — Go on the backend, Svelte on the frontend, PostgreSQL underneath — is a deliberate choice for the things we care about most: clear code, fast software, and systems one person can fully understand.
Go compiles to a single small binary with no runtime to install and no dependency tangle to babysit. This entire website — the public site, the API, and the admin behind it — runs comfortably on one small virtual server, and Go is a big part of why. For clients, that shows up as hosting bills in the tens of dollars, not the thousands.
Go’s error handling is verbose, and we like it that way. Every failure path is visible in the code, which means every failure path gets a decision: handle it, retry it, or surface it. The explicitness critics mock is exactly what makes 2 a.m. debugging rare.
PostgreSQL does more than store our data. Constraints, transactions, and carefully chosen indexes do work that would otherwise be application code with bugs in it. We write SQL directly and keep every query reviewable — no ORM mysteries sitting between us and the database.
On the frontend, Svelte compiles components down to minimal JavaScript instead of shipping a framework to every visitor. Pages render on the server first, so the site is fast on a mid-range phone over a mobile connection — where a huge share of real users actually are — and search engines index real HTML rather than an empty shell.
Svelte 5’s reactivity model is also simply pleasant to build with: state is declared, dependencies are tracked, and there’s no stale-closure folklore to hand down. Less framework in your head leaves more room for the product.
Around that core: Tailwind for styling without a thousand-line stylesheet, Playwright tests that click through the app like a real user before every deploy, and a CI pipeline that carries every merge to production automatically.
We’re not absolutists. We build mobile apps in Flutter and React Native, and when a client’s team lives in React or Python, we meet them there — the worst stack is the one the maintainers don’t know. But when the choice is ours, we pick tools that stay understandable as they grow.
Neither Go nor Svelte is fashionable for its own sake. They’re just what lets a small, senior team ship fast without leaving a mess — which is the whole point.