Running a CMS on Atom

At work I have the need to very quickly design and roll out an insanely basic CMS for a website.

There is no official workflow, all content will be in XHTML, people need to be able to create new documents, and load, edit and save existing documents, with some degree of metadata surrounding it.

I’m currently pretty convinced that my editor will be TinyMCE.

My first thought is to write a very simple Atom backend, where each page on the website is stored as an entry in a feed along with appropriate metadata, and the editor creates new entries or edits existing ones.

The problem then is that pages appear within sections on the site. Sections can be easily defined as categories in each entry, but how do I administer the list of sections itself? At some point when creating or editing an entry, a user will need to be able to choose which section the entry belongs in; this implies to me a separate list of categories, perhaps stored as XOXO ? But then what happens to all the pre-assigned entries if I change the name of an item in the XOXO file?

What about if sections are physical directories, each containing a single Atom file, which contains the pages for that section? Or is that too much overlap between the abstraction and the implementation?

Any hastily-thought ideas and suggestions welcome!

Published by

2 thoughts on “Running a CMS on Atom”

  1. Note that Atom has three attributes for a category: the required term, an optional human-readable label, and an optional scheme with a URI to identify the taxonomy.

    You could use some sort of permanent unique identifier for the term, and just let users edit the label.

    A possible implementation would be to store categories as entries filed in category Category, which is identified by a predefined term. The ID of such a category entry would then serve as the category term and its title would provide the human-readable category label. The summary/content of such a category entry could be used for a description of the category. Such a category would not manifest as a page on the site if you don’t want to make one; remember that an entry need not have an alternate link.

Leave a Reply to Aristotle Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.