New kid on the blog: A look at Serendipity 1.0


Author: Joe 'Zonker' Brockmeier

Serendipity is a PHP-based content management system (CMS) for powering blogs and other sites, and has a feature set that should make any blogger happy. After several years in development, the Serendipity team hit the 1.0 mark on June 15. Let’s see how the 1.0 release shakes out.

Installation is a breeze, and shouldn’t take more than a few minutes for most users. If you’ve ever installed WordPress, Drupal, or other weblog software, you shouldn’t have any problems. Serendipity doesn’t require you to tweak configuration files (unless your PHP settings are unsuitable) — just create the database, uncompress the Serendipity tarball, and point your browser at the URL where Serendipity will live. Unlike many open source CMS packages, Serendipity even gives you the option of using MySQL, PostgreSQL, or SQLite as a database backend.

The Serendipity team also has you covered if you’re migrating from another CMS/blogging platform. The import utility supports Geeklog, b2Evolution, Blogger, Movable Type, WordPress, generic RSS, and a number of other blogging/CMS tools. Depending on the CMS, Serendipity will either import the data from a file or directly from a database.

To test this out, I used data from my blog, which has about two years’ worth of posts. Since WordPress doesn’t provide an easy way to export all posts at once, I did a quick dump of the MySQL database and recreated the database on the test machine where Serendipity is installed. After that, all I had to do was provide Serendipity with the connection information for the WordPress database, and it imported the entire blog with no problem at all.

Posting and managing posts

When blogging with Serendipity, you have the option of using a plain text editor or a WYSIWYG editor called HTMLArea. The plain text editor is the default, but this can be changed under Personal Settings.

As a rule, I prefer using a plain text editor to compose entries for my blog, but I’m probably in the minority on this one, so I spent some time using the plain text editor and HTMLArea to compare how well they worked.

For the most part, HTMLArea works well. Some functions — such as adding images or setting background colors for text, were a bit faulty. Serendipity gives you two ways to add an image to your post — either by using the “insert image” dialog, or by selecting an image from the media library. The problem with the “insert image” is that it only accepts a URL for images rather than accepting a local file.

If you want to upload a file, you have to go through the media library first and then insert the image using the “manage images” dialog. One thing that really irks me about the media library, and the insert image dialog, is that they’re both set up to allow image hotlinking.

In fact, the add media page explicitly provides “hotlink to server” as a method for storing and using images. In fairness, the page does have a disclaimer — at the bottom of the page — telling users to “make sure you have permission to hotlink to the designated website, or the website is yours.” Unfortunately, I’m pretty sure that a lot of users will ignore that disclaimer and leech other folks’ images freely. While the Serendipity team isn’t likely to prohibit users from hotlinking by removing the function, it could at least refrain from encouraging the practice.

I also tried adding a background color to text in one of my posts, but it wouldn’t take. Changing the font color itself worked fine, but background color doesn’t seem to work in HTMLArea.

The plain text editor didn’t give me any problems, though I’m a bit puzzled about the empty box at the bottom of the editor labeled “Advanced Options.” No options, just the box.

For sites with multiple authors and editors, Serendipity has a fairly fine-grained permission system that allows you to create users with restricted access. For example, you can create users that can create posts, but not publish them, or users that can edit and post material to the site, but not perform administrative functions. If the default groups don’t meet your needs, Serendipity also includes a group editor, which allows you to create new groups with custom abilities.

Extending Serendipity

Serendipity ships with a slew of useful (and a few frivolous) plugins. I won’t try to address them all, as the selection of plugins is too extensive to cover here. However, Serendipity has a few worth mentioning specifically.

As most bloggers and site admins know, comment spam is the ugly side of running a site that allows comments. The Spam Protection plugin provides several defenses against comments spam, including options to hold comments for moderation, CAPTCHA challenges for comments, word filters, support for Akismet, and several more. The only thing I didn’t see under Serendipity’s Spam Protector plugin is something like the Bad Behavior plugin for WordPress, which stops spam cold before it even hits the Akismet.

The Serendipity Plugin Access Repository Tool And Customization Unification System (SPARTACUS) provides access to an entire archive of plugins, not just what ships with Serendipity. I enabled this and found a lot of interesting new plugins, though it did seem to slow down the plugin backend quite a bit while searching for new plugins.

You can swap out the HTMLArea editor for FCKeditor, TinyMCE, or XINHA using plugins. Unfortunately, you must also download the replacement package and install it manually.

The plugin system is pretty easy to use — just click to enable or disable a plugin. Each plugin has a good description of what it does, its version, and its authors.

Another important question for any CMS or blogging software is how easy it is to modify the theme or look of the site, and the variety of pre-made themes available for the software. Serendipity ships with a handful of themes, several of which seem to be adapted from or modeled after popular Movable Type or WordPress themes. For example, Serendipity includes a template called Kubrick, which is a dead ringer for the default WordPress theme of the same name.

If you install SPARTACUS, you’ll have access to quite a few templates available in the Serendipity archives. You should be able to find one or two themes that fit your tastes. If not, you can always whip up your own using CSS and Smarty.

Why Serendipity?

After playing with Serendipity for a few days, I found a lot to like, though I didn’t find anything that really puts Serendipity above other CMS and personal publishing platforms. If you’re already using WordPress, Drupal, GeekLog, or any of the other fine open source blogging platforms, I don’t see anything compelling enough to make you switch. If you’re thinking about starting a site, however, you might evaluate Serendipity and see if it feels right.

Apparently, the Serendipity team feels a bit defensive about being yet another CMS platform. On the features page the Serendipity team has a “Why Serendipity is better than…” section to explain why its platform is “better” than competing CMSes.

The Serendipity team touts its BSD license as a feature — which is fine, many folks prefer that license — but it claims Serendipity is better than WordPress because “you can use Serendipity to power your commercial sites without any issues.” Plenty of “commercial” sites are powered using GPLed software, so I’m not sure where this FUD comes from, but the Serendipity team could use their time a bit better by working on the software rather than license-bashing.

Other than that, I really like Serendipity, but I won’t be switching to it anytime soon. While Serendipity is a fine package, it’s not better than what I’m already using. Still, I’ll be keeping an eye on future releases, in case that changes.


  • News