Siikir CMS

September 21, 2009 by Noah
For the last couple months I've been slowly piecing together a new content management system, because the one I wrote for is just terrible and I don't like it anymore.

The new one seems to be headed in the right direction, though. I named it Siikir, because I plan on adapting it for a multi-user website by the same name after I've first built it so it suits me on my single-user websites.

The main thing that sets it apart from any failure of a CMS I've built in the past is that this one is completely abstract and plugin-oriented... so, the main Perl module that gets loaded doesn't really do anything itself, it only manages the loading and controlling of other plugins... literally everything else (page controllers, user management, sessions, etc.) are all delegated to extra plugin modules.

The general idea is this: if I want to make an ajax front-end that tests whether a username is taken or not, why should the code for that be required to load all the code for pages, photo albums, profiles, blogs, etc.? All it really needs to do is load the one plugin that manages users, and ask it if the user is taken. Simple. So that's what this new CMS structure allows for.

Since I'm liking it so far, I just might release the code after I'm doing working on it. Maybe.

Anyway, it's getting close to completion. Page management, users, profiles, and photo albums are all completed (unlike the photo albums on, each user can make their own collection of photo albums). All that's left is programming a blog back into it, and then I'll be migrating everything on this site over to the new code.

I'll also be changing the domain name; this site is gonna be moving over to with the switch. All the old links to specific files on this site will be redirected to the same files on the new domain, for a while, until Google forgets about the old URLs... then I may use for something else.



There are 0 comments on this page. Add yours.

Add a Comment

Used for your Gravatar and optional thread subscription. Privacy policy.
You may format your message using GitHub Flavored Markdown syntax.