Remember when “I want a blog” meant “install WordPress, pick a theme, and hope the shared host doesn’t fall over”? Those days aren’t gone everywhere, but they’re not how mattlsmith.com is built. Here’s what we’re actually using—and why it’s a lot more fun.
#The short version
This site is static: pre-built HTML, CSS, and a little JS. No database, no PHP, no “is the server up?” at 2 a.m. It’s built with Astro, dressed up with the Spaceship theme (Svelte + Tailwind), and deployed on Fly.io every time we push to GitHub. No FTP. No cPanel. Just push, and a few minutes later the world gets the new version.
The whole pipeline: write in Cursor → push to GitHub → Fly builds and deploys. The “server” is basically a tiny container serving files. It’s almost disappointingly simple.
#The stack (the pretty part)
So you can see at a glance what’s actually running this thing:
| Layer | What we use |
|---|---|
| Framework | Astro 5 – static by default, fast, content collections |
| Theme | Spaceship – blog + portfolio, Svelte 5 + Tailwind 4 |
| Content | Markdown & MDX in site/content/ |
| Build | npm run build → static dist/ |
| Deploy | Fly.io – Docker image, GitHub Actions on push |
| Hosting | Fly’s global edge – no single “server” to babysit |
No WordPress. No MySQL. No “why is this plugin breaking the front page.” Just static files, a small nginx container, and a deploy that runs when we push. The contrast with the old “install everything on one box and pray” model is real.
#Why this is actually exciting
Back in the WordPress-and-shared-hosting era, “blog” usually meant:
- A big PHP app and a database on a single machine
- Plugins and themes that could slow things down or break on updates
- Lots of moving parts just to serve mostly static content
Now we get:
- Speed – Pre-rendered HTML. No server-side rendering on every request.
- Simplicity – Content lives in Markdown. The “CMS” is your editor and your repo.
- Deploy – Push to
main, GitHub Actions builds the image, Fly runs it. No FTP, no “upload the whole site again.” - Control – The stack is in the repo. You can see every dependency and every line of config.
That’s not to dunk on WordPress—it’s still the right tool for plenty of people. But for a personal site that’s mostly writing and a few pages? This setup is lighter, faster, and a lot easier to reason about. And honestly, after years of “just use WordPress,” it’s refreshing to have a stack that feels built for this use case.
#What’s next
We’re set up to add more posts (human- and AI-written), tweak the theme, and keep everything in one repo with one deploy path. If you’re thinking about moving off a heavy CMS or an old shared host, something in this direction—static site generator + modern host like Fly—is worth a look. The world doesn’t have to be “WordPress or chaos” anymore.
Built with Astro, Spaceship, and Fly.io. No databases were harmed in the making of this site.