Looking back This describes the 2025 Bunki build. The site now uses Astro; the code and tooling choices below document that earlier implementation.
Most people who read this will open it on a phone between other apps. If the page is heavy, they leave. That is the whole product requirement.
What I Run
Markdown files, a small generator (TypeScript, Nunjucks templates, PostCSS), static HTML out the other side. Hosting is Cloudflare. No Node process sitting around waiting for requests.
I used Claude Code heavily while building the pipeline. The stack choice was still mine: I wanted deploy to be “push and forget,” not “hope the server is up.”
The dependency list is boring on purpose — parse frontmatter, render Markdown, highlight code, ship CSS. If a library does not earn its install, it does not stay.
Deploy
Write a post, push to git, CI builds the site, Cloudflare serves the files from the edge. Readers get HTML from a nearby PoP. I do not SSH in to restart anything when traffic spikes, because there is nothing to restart.
What I Skipped
No Next.js for the blog. I have paid that tax on app work — routing frameworks, serverless cold starts, EMFILE limits on hobby plans. A blog does not need that surface area.
beconfused.com and yorksf.com run the same way. I can reuse the monorepo patterns and edge hosting without making each site share a runtime.
Was this useful?
Thanks for the feedback.