Why I Chose Next.js Over WordPress for My Updated Site

I ran heathschweitzer.com on WordPress for over a decade. It worked fine. I knew PHP cold, the LAMP stack was comfortable, and WordPress gave me everything a personal site needs out of the box. So why rebuild it from scratch on Next.js?
The honest answer isn't that WordPress is bad. It's that I needed a reason to learn something new, and a site I actually use was a better vehicle than a tutorial project. But as the rebuild progressed, the technical reasons became more compelling than the learning ones.
What WordPress Is Good At
WordPress still powers around 40% of the web, and there are real reasons for that. The admin UI is mature. The plugin ecosystem covers almost any feature you could want. Hosting is cheap and widely available. For a content site with non-technical editors, WordPress is often the right call — you're not going to beat 20 years of UX refinement for a blog editor.
My WordPress site had been running since 2012. It had 35+ posts, custom categories, and years of content that needed to migrate. WordPress made that migration easy to start from — a clean XML export with all the structure intact.
Where It Started Breaking Down For Me
The friction wasn't WordPress itself — it was the combination of WordPress, PHP, and trying to do anything modern on top of it. Every time I wanted to add a feature that required custom code, I was writing PHP in a paradigm that hasn't fundamentally changed since 2004. Template files, the_loop(), wp_query(), action hooks everywhere.
More practically: WordPress served my site as a traditional server-rendered PHP application. Every page request hit PHP, queried MySQL, assembled HTML, and sent it down the wire. That model works, but it means your server does work on every request even for content that never changes. Caching plugins paper over this but they're exactly that — paper over it.
The security surface was also a constant low-grade concern. WordPress installs attract automated attacks. Keeping plugins updated, monitoring for vulnerabilities, managing user roles — it's manageable but it's overhead that has nothing to do with writing.
What Next.js Changes
Next.js gives you React on the server and client, a file-based routing system, API routes, and a build pipeline that handles bundling, code splitting, and optimization automatically. For a developer comfortable with JavaScript and modern tooling, it's a dramatically more productive environment than WordPress.
The mental model shift that mattered most to me was Server Components. In Next.js 13+, components that fetch data run on the server — they never ship JavaScript to the client, they have direct database access, and they render to HTML. This isn't that different from PHP conceptually, but the developer experience is orders of magnitude better: TypeScript types, modern async/await patterns, and the same component model as your client-side UI.
My site now runs on Next.js 16 with Prisma for database access and MySQL as the backend. The stack is more complex to set up than WordPress, but once running it's leaner, faster, and I have complete control over every piece of it.
The Custom CMS I Didn't Expect to Build
One thing I didn't anticipate: I ended up building a custom CMS. Next.js doesn't give you a content management UI — you have to build one or use a headless CMS. I chose to build one, and it turned out to be one of the better learning exercises of the whole project.
The admin UI has post creation and editing with a Markdown editor, AI-assisted content generation using the Anthropic API, category and tag management, scheduled publishing, draft preview mode, and a contact form with spam protection. None of that was in the plan when I started — it emerged from actually using the site.
Building it gave me a firsthand appreciation for what WordPress actually does under the hood. Category management, slug generation, post status workflows, publishedAt handling — these seem trivial until you implement them yourself and discover the edge cases.
What I'd Recommend
If you're a non-developer running a content site: stay on WordPress. The ecosystem, the support, the familiarity — it's the right tool.
If you're a developer who wants to learn modern full-stack JavaScript and you have a real project to build it on: Next.js is an excellent choice. The learning curve is real, but you come out the other side with skills that transfer to any React-based project and a much clearer picture of how modern web applications actually work.
The migration itself took a weekend to get the core site running and several weeks of iterating to get it where it is today. I documented the whole process in an earlier post if you want the detailed technical breakdown.
Tagged
If this post was useful, consider buying me a coffee ☕ with ₿itcoin — no account needed, any amount welcome.