This is far from the first website I’ve ever built. For past website projects, I usually paid a company like Squarespace for a hosted blog/CMS. It worked, and I can’t pretend it didn’t make writing the first five posts of a new blog before abandoning it easier. But I didn’t really fancy introducing another monthly subscription to my life this time, and besides, those premade templates always felt a bit rigid to me. Even the good ones!
After my experience building Eyes Up, I decided to vibe code this site into existence instead. I took a lot of inspiration from the tech world, and I sought to bring that slick SaaSSoftware as a Service landing page feel to my creative portfolio. Figuring out the look and feel was a really fun process, and I loved getting the project up on its feet. The less fun bit came next; actually adding and maintaining content pages turned out to be a huge pain.
I had two options. I could ask AI to make changes, which is fine for larger updates but maddening when you just want to fix a typo. Or I could edit the source files myself, which isn’t exactly difficult, but also isn’t a smooth or pleasant flow when all you want is to publish a small tweak and move on with your day. I figured there had to be a middle ground.
So I built Subtext, a small macOS app I vibe coded as a local CMS for this site. It’s a text editor at heart, one that uses the super simple Markdown language for formatting. But crucially, it handles the fiddly bits of parsing and reformatting that text in the exact structure my codebase expects. I can add, edit, and remove content without constantly worrying that I’m going to break everything.
It also does a couple of extra things I think are pretty nifty, like dev server controls and Git-aware publishing. Is it perfect? Not at all. It’s still a bit janky in some places. It’s still very janky in a lot of places, to be honest. But it gets better every time I work on it.
This is probably a roundabout way to build a simple website; it does feel a bit like being hungry and deciding to open a restaurant. But it allowed me to design the site I wanted and then fit the CMS around it, rather than the other way around. I think this is one of the few genuinely useful consumer applications of AI: helping people build small, personal tools that solve annoying little problems in their own lives.
