Skip to content
Joosep Laats

4 September 2026

Goodbye WordPress, hello Next.js

This site used to be a block of HTML pasted into Elementor. Now it's a Next.js app. Here's why I moved it.

This site used to be a single block of HTML pasted into an Elementor widget on WordPress. It worked, and it was quick to ship. But three things bothered me.

First, the weight. A page builder loads its own JavaScript bundle to render what is, in the end, mostly text and images. Second, versioning: my entire site was a paste, so there was no git history and no way back after a bad click. Third, the look. Page builders nudge every site in the same direction, and mine had ended up with the neon-green-on-dark look that half the portfolios on the internet have right now.

So I rebuilt it as a Next.js app. The framework part was easy, since I write React for client work anyway. What I actually gained:

  • The whole site lives in a repository now. Every project, every sentence — versioned and revertable.
  • There's no builder runtime. Pages ship as HTML with a little hydration for the theme toggle, which is about as interactive as a personal site needs to be.
  • Hosting is simple. It runs on a VPS behind Nginx. No database, no admin panel, nothing to update on Sunday nights.

What survived from the old site: the grayscale-to-color hover on project screenshots, the dry footer, and the standing claim that I write my own copy (em dashes included). The rest of the design is new: near-monochrome, editorial, and a lot quieter.

If your personal site is a paste inside someone else's builder, I'd move it into a repo. It's a weekend of work, and it's yours afterwards.