Halit Software← Back
2026-02-015 min

Why I Migrated Away from WordPress

The breaking point

I've been running halit.ca on WordPress for years. It served its purpose — a portfolio, blog posts, project showcases. But over time, the cracks became impossible to ignore. Plugin updates breaking layouts, PHP compatibility issues, a Lighthouse performance score sitting at 49.

Forty-nine. For what is essentially a static content site with some images.

I've built enough systems to know when something is over-engineered for the job. WordPress was doing far too much for what I needed: a fast portfolio site with a blog.

What I wanted instead

The requirements were simple: ship fast, load fast, and stay out of my way. Specifically:

  • Static generation — no server runtime for content pages.
  • MDX for blog posts — Markdown with component support, living in the repo.
  • TypeScript throughout — no more guessing what a theme function returns.
  • Deploy anywhere — Vercel, Amplify, a CDN, whatever.
  • No database — content as files, version-controlled in Git.

The new stack

Next.js with Tailwind CSS and MDX. Pages are statically generated at build time. Blog posts are .mdx files with frontmatter. The entire site is a single Git repository.

The migration meant rewriting the site from scratch rather than trying to port WordPress themes. The old blog posts were converted to MDX — the two technical posts (AWS Amplify Node.js versioning and SES inbound email processing) came over cleanly with proper code blocks and formatting.

What I gained

The performance difference is night and day. The WordPress site loads multiple render-blocking scripts, jQuery, plugin CSS, and a full PHP backend for every page load. The new site serves pre-rendered HTML with minimal JavaScript hydration.

Beyond performance, the developer experience is incomparably better. I'm writing TypeScript components instead of wrestling with WordPress hooks. Styling is Tailwind utility classes instead of overriding theme CSS. Deployments are a git push instead of FTP uploads and cache-clearing rituals.

The tradeoffs

WordPress gave me a visual editor, a plugin ecosystem, and a familiar admin panel. All gone now. Writing posts means writing Markdown in a code editor. There's no comment system, no built-in analytics, no drag-and-drop page builder.

For my use case — a developer portfolio and technical blog — these aren't losses. They're weight I was happy to shed. The site does exactly what I need, nothing more, and it does it fast.

What's next

Once I deploy the new site, I'll update this post with real Lighthouse numbers. The WordPress version sits at 49. I'm expecting a significant jump — the static architecture, modern image optimization, and zero plugin overhead should put it well into the 90s.