When I launched the new look of the website earlier this week, a lot of people
asked me over email what kind of setup I'm using - blogging engine, hosting and
so on. Here's a short writeup.
A lot has changed for this website. First of all, I switched my hosting provider
from a shared Bluehost account (which I've had for the past 9 years or so) to a
VPS on Digital Ocean.
Second, the blogging platform was changed from Wordpress to Pelican. Pelican is a really nice and fast static-site
generator with a fairly clean Python codebase. It's easy to use and configure,
and the documentation is great; so overall I'd say I'm pretty happy with it. The
theme is my hacked up version of one of the existing bootstrap3-based themes.
One of the benefits of this is that the site is now much more usable on mobile.
As for moving the existing content from the old Wordpress site, there are two
options. For smaller sites you may consider the auto-import capability Pelican
has for Wordpress imports. I didn't end up using it because I needed to preserve
the exact permalinks of my old website (there are a lot of incoming links to
it out there, and it would be a shame to break them all), as well as
some other reasons. I just wrote a quick script that did my own importing from a
Wordpress XML dump.
Pelican lets older (back-ported) HTML content peacefully coexist with new,
ReST-authored content, which is very useful. For preserving the old permalinks,
it has the handy save_as and url attributes. Pelican also comes with
built-in integration to Google Analytics and Disqus, both of which took about 5
minutes to configure.
All in all, I'm very happy with the transition. Static pages just make more
sense for a blog (even a fairly large one with over 1000 articles); the site now
feels incredibly fast to me. This is hardly surprising, given that it moved from
querying a DB and processing a bunch of PHP on a fairly congested machine to
just running a bare web server accessing the filesystem on a reasonably fast,