From Wordpress to Pelican

Since a long time now I have used Wordpress for my website. And while I do not have any major thing to complain about, I have now taken the step to change to a new platform: Pelican.

Why not Wordpress anymore?

There are a few things with Wordpress which I do not like so much anymore.

  • The editor: In the last years I've got used to write much of my notes and documentation in emacs either in rest or markdown format. This is quite fast and efficient for me. Any editor requiring me to click on icons to format text now seems a bit slow and akward.

  • Security: While I never had any security issues with Wordpress (at least none I am aware of), I always feel the software is too big and complex, so it is likely that there are some security issues with it or its plugins, that an attacker could use.

  • UI Speed: While I still live in China, the connection to my web server (currently located in the Amazon AWS cloud in USA) is a bit slow. This makes using the Wordpress web interface quite slow and annoying.

  • Version Control: I enjoy using git for version control. And so it seems like a good idea also to track the content of my website and all its changes in git.

So I had a look for a new tool for maintaining my website, especially for static site generators like Hugo and Pelican.

Getting Started

As I do much software delevopment with Python and also had already used the Jinja2 templating system, I had a detailed look at Pelican and immediately liked it.

The concept is quite easy to understand and setting up a website takes only a few minutes. If you want to know more about how to get started, have a look at the Quickstart section of the Pelican documentation.

The themes are based on a few standard HTML pages (article.html, page.html, archives.html, tags.html, ...), which make use of the Jinja2 template language to generate all pages. From this, pelican generates static pages, i.e. the result is plain HTML files, which do not need any server-side processing.


One of the more difficult things to do was selecting a theme for the website. The main requirements were

  • Clean, modern and simple layout (ok, this very much depends on my taste)

  • Mobile-friendly

I could not find a theme in the huge Pelican theme repository which I really liked. But after some searching and browsing for other websites using Pelican, I found a website with a nice theme at and the theme source code published as open-source on github.

I have now created a copy of that theme to implement a few modifications. The result will soon be published on Github again.

LinkedIn logo mail logo