All posts

A lean stack for building alone

When you build products alone, every tool you add is one more thing to maintain. My rule is simple: pick things that keep running without me watching them. Here is how this site is put together.

Static first, dynamic only when needed

Most content doesn’t need a server: the intro, the posts, the project list. This site is built with Astro and ships as static HTML; only the newsletter signup form needs server code. Fewer moving parts means fewer things to break, and pages load almost instantly.

Run at the edge instead of managing servers

The site runs on Cloudflare Workers: no servers to patch, no worrying about traffic spikes, and the domain and HTTPS come built in. The server code is one small piece: it takes a signup email, checks for bots with Turnstile, and passes it on to Beehiiv.

Fetch data at build time, not on every view

The GitHub contribution grid doesn’t call an API every time someone opens the page. The data is fetched once at build and baked into the page. Readers don’t wait, the API doesn’t get hammered, and if it fails that section simply hides instead of breaking the whole page. When I want fresh data, I rebuild, and that can be automated.

Posts live with the code

The post you’re reading is a Markdown file in the site’s own source code. It doesn’t depend on any platform: every edit has history in Git, the posts can move anywhere, and publishing is just a deploy. The newsletter still goes out through Beehiiv, but the site doesn’t need Beehiiv to show the posts.

Use services for what isn’t your strength

Sending email, managing subscribers and fighting spam are all hard to do well. I use Beehiiv for the newsletter and Cloudflare Turnstile against bots instead of building my own, and save my time for the main product.

Secrets never live in code

Tokens and API keys live in environment files that never go to Git, and in Cloudflare’s secrets. A small script asks for each key and writes it to the right place, so nobody has to paste a key into code or into a chat.

Wrapping up

A good stack for building alone isn’t the most powerful one. It’s the one you can forget about for months and it still runs.