Across 30+ repositories the same few decisions keep showing up, and they are deliberately boring.
Ship the smallest surface that works
Most products fit in one Cloudflare Worker and one database, or one Docker compose file. When a feature would demand a second service, I ask whether it truly earns it before adding the moving part.
Prefer proven paths
Hono and TypeScript for the edge, SvelteKit and Sanity for content, Go and sing-box for networking, Docker for self-hosted. No dependency is added for what a few lines already do.
Build observability in, not on
Uptime, logs, and a status page are part of the initial commit for anything public, because the first failure usually arrives before the second feature.
This site itself follows the rule: a Hono worker serving static assets plus one small API for the contribution graph. Nothing more than it needs.
Boring defaults, small surfaces, and observability from day one.