On personal infrastructure
My personal infrastructure is a collection of small, purpose-built services spread across AWS Lambda, Cloudflare Pages, and a k3s homelab cluster. There’s no grand unified platform. Each project gets deployed wherever makes sense for its constraints.
The constellation approach
josh.bot is a Go API on Lambda. k8-one.josh.bot is an Astro site on Cloudflare. The resume site is static HTML on S3 + CloudFront. LiftLog has a SvelteKit frontend with a Go backend. Each one is independent, each one is simple.
This mirrors how I think about infrastructure professionally. Small services with clear boundaries, deployed independently, composed through well-defined interfaces. The same principles that work at scale work for personal projects - they just happen to be cheaper.
Why not a monolith
I could consolidate everything into one app. But then every deployment risks everything. Every dependency upgrade touches everything. Every experiment contaminates the stable stuff.
With independent services, I can rebuild any piece without touching the rest. I can try Elixir for one project and Go for another. I can let something sit untouched for months and it keeps running because it has no dependencies on anything that changed.
The homelab
The k3s cluster runs monitoring and a few internal tools. It’s small - three nodes, nothing fancy. But it gives me a place to run things that don’t fit the serverless model, and it keeps my Kubernetes skills sharp for work.