Mikko Kortelainen

Moving from WordPress to Pelican

After running this blog on WordPress since 2007, I've finally moved it to a static site. The trigger was my old hosting provider shutting down their data center at the end of March 2026. My server was getting old, too.

Rather than migrating WordPress somewhere else, I decided to go static. I also got a new domain (mikko.kortelainen.io) and a fresh coat of paint for the blog.

I have been lazy about writing new content for years, but I still wanted to keep the old articles and comments alive. The new stack is more maintainable and cost-effective, and I hope it will encourage me to write more often.

The New Stack

The blog now runs on Pelican, a Python-based static site generator. The infrastructure is on AWS, managed with CDK:

  • S3 for static file hosting
  • CloudFront for CDN and HTTPS
  • Lambda + API Gateway for the comment system
  • DynamoDB for storing comments and ratings

Articles and comments from 2007-2023 were migrated from WordPress, and the old domain redirects to the new one.

I wanted to keep everything that mattered from the old site:

  • All articles and their content
  • All comments with full threading
  • Article ratings migrated from the WordPress Post Ratings plugin
  • Old domain URLs redirect to the new domain, including the date-based WordPress URL scheme (/blog/2015/03/20/slug/ becomes /blog/slug/)
  • RSS feed subscribers are redirected to the new Atom feed

Some articles were missing content for an unknown reason, and I was not able to recover everything.

The comment system is custom-built: a Lambda function behind API Gateway with Akismet spam filtering, per-IP rate limiting, and optional Google sign-in.

The new design is minimalist and mobile-friendly, with a light/dark mode toggle.

Let me know if you find any issues with the new site or have suggestions for improvements.

Rate this article
💬 Leave a comment