How I Finally Rebuilt My Site In 2025

Well, it's finally time. I've shipped the latest (yearly) rewrite of my personal site, as any self-respecting developer should. The more keen-eyed among you may notice there wasn't an update in 2024 and while that's technically true, I did work on a rewrite of my site in 2024, I just never shipped it.

I got stuck in an overwhelming muck of complexity and feature creep. Believe it or not I actually built it with multitenancy and theming support And while I built it for myself, the thinking eventually shifted to "if I need this, surely others might find it useful too".

Needless to say the scope was far too large for a simple personal website. So I learned and skipped 2024. Which brings us to this latest, much saner edition.

Compressing Complexity

If I could summarize the theme of my development efforts this year, it's to compress the complexity of things I build. It's a term borrowed from the Rails world and coined by DHH. I recommend reading his Merchants of Complexity article if you want to learn more about the concept1 Another good read on the subject is The Grug Brained Developer guide by Carsson Gross2. It's also in line with a post I wrote earlier this year, I'm Going Back to jQuery in 2025 (And Why That's Not Insanity)

complexity very, very bad.

With this goal in mind I set out to look for the ultimate grug solution. In my search came across a couple of compelling products like BearBlog, Pages CMS and the excellent Eleventy (you might be able to tell I've taken some inspiration from the latter).

But none felt right. Not because they're not good, they're all amazing projects and I admire the people working on them, they just didn't feel like me.

So, I hit laravel new and got started.

Setting the tone

Before diving into the code I set out a few simple rules for myself:

  1. The project needs to be done in a weekend.
  2. It needs to load lightning fast.
  3. The design should be ultra minimal but still aesthetically pleasing and readable.
  4. Use the platform.
  5. No database, I want to write plain Markdown.
  6. No vibe coding.

What I Actually Built

So what did I end up with after all that constraint-setting?
A small, Markdown-powered site with just enough structure to make it pleasant to work on, but none of the overhead of a “real” CMS. Pages are just .md files living in a directory, parsed, and rendered into clean HTML. No fancy build pipelines. No backend beyond serving static content.

The templates are basically a sprinkling of Blade, some Tailwind for typography, and then letting the browser handle the rest. That’s it.

No admin panels. No dashboards. No notifications begging me to upgrade. Just my words, my styles, my site.

And honestly? It feels really refreshing.


The Experience of Shipping Small

Something funny happens when you force yourself to limit scope: you actually finish things.
This is probably the first time in years I built something for myself and hit “deploy” within the same week I started.

It’s that same dopamine hit from early days on the web, when whipping up a site felt playful instead of like another side project demanding a feature roadmap and a backlog. It’s made me re-think what “projects” even mean. Maybe they shouldn’t be “projects” at all — maybe they should just be expressions.

And with that frame of mind, shipping becomes way less stressful.


What’s Next?

I’ve promised myself I’m not adding a bunch of bells and whistles. But I do think there’s a sweet spot for “little upgrades” that feel like fun flourishes rather than obligations:

  • Maybe a dark mode toggle.
  • A spot for notes, because I always forget to jot down interesting links or tidbits of information.
  • Reading time indicators.
  • Upvotes (but only if it stays dead simple).
  • And possibly a “Now” page, since I love reading other people’s.

But beyond that? I don’t want to overthink it. The site exists. It’s online. And that’s enough.


Closing Thoughts

Building this version of my site was less about flexing technical chops and more about reclaiming simplicity. The web doesn’t always need to feel like a startup or a product. Sometimes it just needs to feel like… you. If you’ve got a dusty personal site you’ve been meaning to overhaul, maybe this is your sign: don’t. Or at least, don’t rethink it into oblivion. Pick a weekend, pick some constraints, and just get your words onto a page. Because shipping small things feels way better than never shipping anything at all.

Grug finally make site. Grug happy. Grug not rewrite… until next year.