After a long hiatus I brought this blog back to life. I considered several ways to use a new blog engine over the past couple of years, either using an existing project or built myself. The original blog used Drupal. Drupal is a good CMS, but seemed like overkill. It has a different development model than I wanted to use for a site, and I didn’t want to get locked in. I know I could have moved away, but I just felt like “why put the time in?”
The platforms, languages, frameworks I looked at include:
- Google App Engine using either Python or Java
- A VPS running Java/Clojure or Python
- Java/Clojure on Amazon’s Elastic Beanstalk
- Heroku with Clojure
- CouchDB running on Iris Couch
- A static site built with something like Jekyll
I didn’t seriously consider the last option, building a static site. Though I did eventually develop a goal of using other services as much as possible in order to avoid doing the work myself. While it is educational and useful to know, doing the SysAdmin work associated with running Drupal on my own server is time consuming. You have to keep the server updated, Drupal itself, and any Drupal modules used. I often want to build things myself so they’re just the way I want them, but the extra time can take away from doing something more useful.
I’d gotten to the point where I was focusing on a CouchDB solution because I thought it might present an opportunity to try to use ClojureScript. It would take a while to build a site that way, so I reconsidered and thought perhaps start with an existing blog app/framework and eventually rebuild it on the data with my own app.
CouchDB is possibly the closest you can get to a static site that is still database-driven. If you use CouchDB design docs to serve a site, there’s hopefully not much processing going on to generate the page. You would want to have the generated pages cached to avoid unnecessary load on what is nearly a static site since personal blogs tend not to be updated that frequently. In some ways it’s not a far step from a cached CouchDB site that isn’t updated frequently to just building a static site generated from files on your computer. One more nice thing about CouchDB is you can make your changes on your local database and send them to your production site using replication. That also makes your local database a good back-up of the production site.
I am anxious to get this blog going again so I can try out some HTML 5 and some aspects of the public web that I don’t get a chance to deal with at my job. This anxiousness kept me thinking what is the quickest thing I can build. Then last week I saw Werner Vogels’ post on moving his blog to a static site hosted on S3 and generated from files using Jekyll. I’d considered this before, but hadn’t looked into it much. The article prompted me to search some for static site generators. That post and its comments listed a few alternatives. Ruby had three good ones. But what finally pushed me one direction was finding Octopress. It bundles several features on top of Jekyll that made me decide to try it.
Octopress already has a theme, so I can just use its for a while. It has a few Jekyll plugins integrated. It uses SASS to generate the CSS. It seemed like a good place to get started quickly.
I cloned the GitHub repo and had test site running on my laptop without much effort or time, so without much thought about it, really, I just started the process of preparing for the move. I’ll get into the move from Drupal in a future post.