$ about-this-site
When I first approached building a personal site, I got sidetracked for months with all the cool options and frameworks out there. I had a ton of fun experimenting with static site generators like Astro and Gatsby but ultimately landed on a small, minimal stack:
- ➜ FastAPI: handles the core application logic
- ➜ Jinja2 + HTMX: lightweight, server-driven UI with small client-side interactions
- ➜ Tailwind CSS: utility-first styling within a constrained design system
- ➜ Gunicorn: runs the application reliably under load
- ➜ Nginx: manages incoming traffic and HTTPS
- ➜ Debian-based VPS: a small server that I operate directly
It's flexible but predictable and I own it end-to-end. By design, there's very little unnecessary abstraction. This makes it easy to quickly add a new feature or debug an issue.
Running everything myself forces me to understand how all the pieces fit together. I can't mindlessly follow a tutorial or hit a deploy button, so I end up learning every time I touch it (even if it’s just that I should have documented something better).
In action, the flow looks roughly like this: