The State of Rails Blogging Engines
Recently I decided to upgrade the software that powers the blogs on my server. Since I still have a soft spot for Ruby on Rails, that was basically my first and only requirement. Now if you’ve already scrolled down to the bottom to check the "Powered by" line you’ll know that I’ve published this on Typo 5.1.3. That may make this seem a little biased, so let me just say that Typo emerged as the app that met the most of my needs (mostly wants) for a blogging system.
Searching for other articles on Rails blogging engines provided a lot of information, but most of it was a a year or two old, which given the speed of Rails development ("what, you’re still running mongrel?!") meant that it was a bit outdated. My second "requirement" was that the engine I chose be as close to the edge as I could get without investing an inordinate amount of time getting everything working. The developer in me wants to believe that I should be able to pull everything I need right from source control and have it up and running in almost no time at all. In a perfect world this is completely feasible, but since I currently reside in the real world most of the time, I decided that if I found myself spending too much time re-installing or reconfiguring things, that I would abandon that project and find something simpler.
I initially looked at four popular Rails blogging engines (all free/OSS of course): RadiantCMS, SimpleLog, Mephisto, and Typo. RadiantCMS, as it’s name implies, is a full-blown content management system, which I decided was probably more than I needed currently. SimpleLog focuses on providing all the basic features needed for blogging, and nothing more. While I could probably do without a lot of extra features, I decided that there were some things I did want, and SimpleLog was just too… simple. If RadiantCMS’s porridge was too hot, SimpleLog’s was too cold.
Which left Mephisto and Typo. Typo seems to have a reputation for being very feature-rich but at the expense of being a bit of a resource hog. Typo has been around longer than most of the other Rails blog engines as far as I can tell. Mephisto is regarded as somewhat leaner, although performance was not really a big consideration of mine so I didn’t bother comparing them on performance. I actually found the features of both to be quite similar - tagging, feeds, trackbacks, themes, etc.; all the standard blog fare is there. Mephisto seems to be a popular choice for Rails blogs - its what currently powers Riding Rails, the official Rails blog, and many other blogs in the Rails community.
Both projects appear to be actively maintained, with development going in fits and starts – flurries of development interspersed with long periods of inactivity. You can’t really expect much more than that from the volunteers that work on the projects, they have to earn a living somehow too. Since both projects repositories’ are hosted over at GitHub, I decided to check them both out and see if I could get them up and running on edge rails.
FAIL.
Rails is nearing its 2.2 release, but it’s still not quite there at the time of this posting. Typo says that the current code in its repository is targeting Rails 2.2 and I couldn’t find any information for Mephisto in that respect. But I couldn’t get either engine working right out of the box with edge rails, or by falling back to older versions of gem rails. After trying to resolve various issues related to dependencies on different rails versions and other installed gems I eventually had to force myself to give up and try the stable versions.
I succeeded in installing Mephisto 0.8 on Rails 2.0.2, and Typo 5.1.3 on Rails 2.1.2. Installation for both was fairly straightforward, although for Mephisto it helps if you are already familiar with Rails apps. Typo seems to have put some more work into their installer since the last time I tried it (version 4.0), which makes installation a breeze, all you have to do is point the script at your database and it takes care of the rest.
One area where neither engine really shines are error messages. With both I was able to find a few edge cases where I would get my server’s default 404 or 500 message, and I wasn’t interested enough in digging into logs to find the root cause. Typo’s Admin interface is much more polished in my opinion, and although Mephisto’s Admin tools were enough for me to get the job done, I was more comfortable using Typo, and since Typo was working on a more recent version of Rails, I was already starting to lean that way. Mephisto really shot itself in the foot, though, when I tried to install a new theme. Installing a new theme in Typo or Mephisto is only a matter of unzipping the theme in the right directory. But when I tried to set that theme as the default in Mephisto’s admin interface, I was redirected to a page of plaintext javascript that looked like it probably came from an RJS template. Probably an easy bug to fix, maybe the Mephisto folks already have, but for me that was strike three for Mephisto.
One more thing I like about Typo is the spam protection. Both Typo and Mephisto support using Akismet to block spam comments, but Typo also has an option to use its built-in spam protection, which seems to work pretty well so far. I will probably eventually use Akismet anyway, but I really like having the ability to block spam without having to go sign up for another service right away.
So that is how I eventually settled on Typo 5.1.3. I’ll be looking out for a 5.2 release, hopefully soon after the Rails 2.2 release. I may also give Mephisto another try on their next release. I’m also still keeping an eye on RadiantCMS, especially since they seem to have an iPhone admin interface in the works.

