By Richard Hsu
Latest | Archives | Contact | Others


On a September 1st afternoon, I found an article about Linux kernel GPL enforcement on Hacker News. It referenced Torvald's reply on the thread. I read it and enjoyed the argument made and the style it was made in. It also got me curious about plain text formatting (*bold*, _underscore_, [footnotes], > for quoting). I suddenly had a desire to write like that and wondered if there was a blogging service that supported that. My website was on WordPress and it could work using <pre> Html tag but plain text wasn't the only way to write.

So I Googled for "plain text blog" and found http://calepin.co/ and it was nice but not exactly what I was looking for. I noticed the words "Powered by Pelican" in the footer. That got me looking up Pelican and I learnt it was a "static site generator written in Python". Interesting1. On the same Google results page, there was a blog post about building a static blog with Pelican. The post describes blogging options and makes an argument for static site generators. It also provides step-by-step instructions to get Pelican working, but the most useful paragraph for me was

The hosting resources required for public deployment are very small, allowing one to use very cheap hosts such as NearlyFreeSpeech. Outside the domain registration costs, the running costs come to less than $1 per month, which is a great saving!

NearlyFreeSpeech was the final3 ingredient needed to make Chaipress - my own static site generator. I don't know if it was the geekiness of NearlyFreeSpeech's website, their philosophy, or the pricing but it got me started and I had the first generated website up on September 17th. Writing the generator didn't take long but importing my WordPress posts did2. And I forgot about the plain text only thing that started all this.

I called it Chaipress because Chai(tea) is simple, easy-to-make, low cost, and refreshing. The press is a suffix borrowed from the names of other blogging systems (WordPress, Octopress).


  1. Python is my favourite and Blogging apps are an eternal curiosity of mine. I did try Pelican.
  2. Text encoding mistakes. WordPress posts were not in Html so I had to convert them using Markdown. In hindsight, I could have left it as-is and converted them during page generation instead.
  3. My previous attempts at writing my own blog engine went nowhere. When I started working as a programmer, blogging was a thing and writing a blog engine was also a thing. It still is.