2 min read

Standing Up This Site (Notes, Not a Tutorial)

Standing Up This Site (Notes, Not a Tutorial)
Photo by Berat Bozkurt / Unsplash

This post is not a step by step guide.

It’s a record of how this site came to exist, what I chose, what I avoided, and why. If you’re looking for a perfectly optimized walkthrough, there are better places for that. This is more of a field note.

The goal

I wanted a place to write that met a few constraints:

  • Minimal ongoing maintenance
  • Content I own and control
  • No heavy CMS overhead
  • No SaaS lock-in
  • Something I could understand end to end

I’ve done WordPress. I’ve done hosted platforms. They work, but they also come with gravity. Plugins, updates, themes, accounts, decisions. Too much friction for what I wanted this to be.

This time, the goal was simple: write, publish, move on.

The stack

I landed on:

  • Ghost
  • Docker
  • MariaDB
  • Caddy
  • A small DigitalOcean droplet

Nothing exotic. Nothing bleeding edge. Just boring, understandable components.

Ghost gives me a clean writing experience without dragging me into CMS hell. Docker keeps the whole thing portable. MariaDB is stable and familiar. Caddy handles HTTPS without drama.

The whole thing runs behind a reverse proxy with automatic TLS. Once it was up, it stayed up.

That was important.

The setup experience

Standing this up was not hard, but it was not zero effort either.

There were the usual moments:

  • A database connection error because something wasn’t running yet
  • A config value in the wrong place
  • A container that needed to be restarted, not recreated

None of it was novel. All of it was the kind of friction that reminds you why abstractions exist, but also why understanding the layers underneath them matters.

Once things were stable, I took a snapshot of the droplet. That snapshot matters more than most of the styling decisions I agonized over later.

Styling, and getting distracted

I lost more time than I want to admit on styling.

Fonts. Themes. Dark mode. Accent colors. Logos. Publication images. All the things that feel productive but do not move the core goal forward.

This is a pattern for me. If I’m honest, it’s probably a pattern for a lot of technical people. Visual tweaks are finite. Writing is open ended. One feels safer than the other.

At some point I stopped and reminded myself why this exists.

The design is good enough. The site loads. The text is readable. That’s the bar.

What matters more than the stack

The most important thing here is not Ghost, Docker, or Caddy.

It’s intent.

This site exists to document work in progress. Not just successes, but the thinking, the false starts, the tradeoffs, and the parts that usually get edited out when you’re trying to sound polished.

If it turns into something bigger later, fine. If it doesn’t, that’s also fine.

Right now, it just needs to exist.

What’s next

The next posts will probably be:

  • Notes on systems I’m building
  • Thoughts from ongoing technical projects
  • Things I’m trying to understand better by writing them down

No schedule. No optimization. No pressure to perform.

Just writing things out in public and seeing where that leads.