I am frustrated with the Content Management Systems I've tried to use on my personal websites. I am now attempting to write my own CMS in Perl. It is in the very early stages of planning, but I've started a blogspot journal following the progress: A CMS That Doesn't Suck In my initial post, I wrote witty statements that I thought should characterize a CMS that doesn't suck. Here are a few: Visit my journal to read the rest of them.

Replies are listed 'Best First'.
Re: A CMS That Doesn't Suck
by jhourcle (Prior) on Jun 20, 2005 at 17:28 UTC

    I don't think you grok the concept of a CMS. You're suggesting that you remove much of the functionality that makes the difference between a CMS, and just some sort of ability to modify an HTML document through a web-based GUI.

    I believe that all that you have managed to identify is that you do not want a CMS, but what you propose is not a Content Management System, as based on the (seemingly conflicting) requirements, you're suggesting that you remove the meta-data, which is how you handle the 'management' of the content.

    It's entirely possible that your needs aren't met by an off-the-shelf product, and that many of the features in a CMS are extraneous for your purposes. In this case, I think the problem is that you are setting expectations about what a CMS is, that you're missing the real problem -- they weren't intended for what you're trying to do. It'd be like trying to write Perl in MS Word, and complaining because none of your scripts work, because of that damned smart quotes 'feature'.

    Let me point out a couple of the flaws, as I see it in your listed requirements:

Re: A CMS That Doesn't Suck
by samtregar (Abbot) on Jun 20, 2005 at 17:58 UTC
    Good luck. In my experience all content management systems suck. The problem space is huge and the range of complexity is enormous. This means that any given CMS is unlikely to be a good fit for a particular site - it'll be too simple or too complex in any number of ways. The challenge is to create one that sucks as little as possible for the particular site you're trying to support.

    But don't listen to anyone telling you you're not building a content management system just because you're skipping some of the usual building blocks. Of course you are! You've got content and you're going to find a way to manage it. You might do a bad job (by, for example, skipping databases and templates) but it will still be a CMS when you're done.

    -sam

Re: A CMS That Doesn't Suck
by jeffa (Bishop) on Jun 20, 2005 at 21:17 UTC

    Are you really wanting a Content Management System, or just a tool that allows people who don't know how to build websites to build websites? There is a difference, you know. I built the latter a while back for a client, thinking it was the former. But it wasn't. Still -- it worked, for that client. She didn't know HTML or file management, but i built a system that allowed her to add pages, content to those pages, those pages to the menu, etc. But i couldn't allow her control such as placement of everything on the site: where the menu goes, where the ads go. You see, there is a fine line between the control you can allow the unskilled to have and the control that skilled users need to have. That's one major factor that keeps CMS systems from being truly generic.

    At any rate, if you don't know about HTMLArea, then read up on it. It turns a regular HTML textarea into a WYSIWYG HTML editor, much like a Word application. The HTML it produces is not the cleanest, but who cares if your client can use it and it still renders in the browser? Here is an archived example that i keep handy, in case you want to check it out. I think i am still allowed to do that ... :O

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)
    
      Thanks for pointing out HTMLArea and sharing that example. I think I'm going to split my proposed project up into two different projects. One project will focus on making a general purpose CMS that may take some expertise to get installed and started working. The second project will be to create an interface that will allow people with little knowledge of web design to design new pages.
      I used to use HTMLArea, (and the Tiny CMS from the company that wrote it), but I found it a bit limited and sometimes a bit flaky in its cross-browser support. I now use FCKeditor which has a very active user community and seems to be permanently in the Sourceforce top 10.
Re: A CMS That Doesn't Suck
by jZed (Prior) on Jun 20, 2005 at 16:36 UTC
    Meta-data is a waste of your storage space. ... Content deserves to roam free instead of being trapped in complex databases. ... Templates are stupid
    Hmm, no meta-data, databases, or templates, or suckage ... ok, we have a good idea of what you don't like, but inquiring minds wonder what you are going to replace them with.

      Pizzaz! And moxie. Can never have too much moxie, kid.

      --
      We're looking for people in ATL

Re: A CMS That Doesn't Suck
by Mutant (Priest) on Jun 20, 2005 at 16:45 UTC
    Is it just me or is keeping your content in a database and having the CMS generate static pages containing the same content redundant?
    Yes it is redundant, but it's a useful option to have on high traffic sites.

    CMS is a very large field, even just for websites. I think what you're after is a CMS that doesn't suck for *your* needs. You haven't really defined your needs though, so it's hard to tell if you're on the right track.
      Mutant, in my attempt to be witty, I did neglect to clarify I'm writing a CMS that doesn't suck for my needs. Thanks for pointing that out. I hope that when I'm finished it will meet the needs of others also.

      I agree that databases are useful if not a necessity for extremely large sites or high traffic sites. My CMS will be targeted more at small sites like personal sites and church sites. It will be designed to be extremely easy to install and use. I want it to be easily intallable on an existing site without having to rework the entire site to fit into some database.

      I would like the entire CMS to exist of a single Perl script and installation would only consist of uploading and chmodding the file.

      jZed, my first planning stage is just to write and collect as many frustrations about CMS that I can. Then I will boil them down to a few I really want to address. At that point, I will decide how to better implement a CMS without that.

      As for a replacement for meta-data and storing content in a database, the system should be able to glean that information from the HTML files themself. I understand this would probably not work efficiently for an extremely large site, but it would be great for smaller sites and save on storage space. I don't want to use templates because that would make it difficult to use the system with an existing site. I still need to think of a better way to implement a consistent look with little effort.
        One thing that would be helpful for you as you work through design issues, for users of your software trying to decide if it supports their needs, and for others wishing to help is a definition of what constitutes "content" within your CMS. Is content only HTML files or can it include other text files? What about binary files, like pictures that may be attached to articles? Knowing what content needs to be supported will help to define requirements.

        I am not sure what the "website as-is" in the requirements means. Is the intent to manage all files related to the website, scripts and all, or just the data that is displayed?
Re: A CMS That Doesn't Suck
by perrin (Chancellor) on Jun 20, 2005 at 17:49 UTC
    I agree, this is not a CMS you're describing. It sounds like you either want Microsoft FrontPage or one of the popular PHP things like Typo3 or EZPublish.
Re: A CMS That Doesn't Suck
by Juerd (Abbot) on Jun 20, 2005 at 19:49 UTC

    The church secretary should be able to install and use the CMS on almost any shared hosting account.

    My translation: must be written in PHP or else be fully client side, not need any configuration, and come with an FTP HOWTO for people who barely know that e-mail uses the same network as "internet" (the web).

    The templates should not make your staff page and copyright page look just like another blog entry.

    My translation: it must not be blogging software, but a generic CMS.

    Content management is useless if you have to recreate your website to use it. Your CMS should be able to manage your current website as-is.

    My translation: no templates, but direct application on existing, unmanaged pages. Consistency is established by copying empty pages and never changing anything in the base design.

    Tabbed, paged, treed, etc. control panels do not make your CMS user-friendly. They make it overly complicated, and they are not very sexy.

    My translation: there must be no features in the system and it may not be suitable for large websites. Structured content doesn't work, and the target site has no more than 25 pages.

    Content deserves to roam free instead of being trapped in complex databases.

    My translation: I want an editor to work with raw HTML pages.

    I'm sure you will find the CMS you're looking for. Any Wysiwyg editor with built in FTP client suffices. But you will not find one that corresponds entirely to all of your demands, simply because then it does suck, and one of your demands is that it doesn't. Tricky.

    Good luck.

    Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }

Re: A CMS That Doesn't Suck
by cog (Parson) on Jun 20, 2005 at 18:41 UTC
      I'm not proposing to write an interpreter within the CMS to run scripts. It would be designed where people could upload scripts in any language that their server will run anyway and be able to execute them on their website. This would be accomplished by not impeding the execution of something uploaded by the website designer. Many Content Management Systems would require you to create a plugin rather than just allowing you to upload external scripts you have written.
        So any user (not just the site administrator) can execute any code (s)he likes on your server? And said server would be connected to the internet? Erm, that doesn't sound like a very good idea....
Re: A CMS That Doesn't Suck
by disciple (Pilgrim) on Jun 20, 2005 at 23:34 UTC

    It sounds like you want a tool like CityDesk from FogCreek software: http://www.fogcreek.com/CityDesk/index.html

    I have not used it so I cannot comment on it, but read through the tour and you will get a feel for how it works.

Re: A CMS That Doesn't Suck
by Akhasha (Scribe) on Jun 21, 2005 at 09:40 UTC
    Perhaps I grok what you're after, and I can't help but think of Bloxsom as a blog engine equivalent. A single script that tries to not get in the way, operating on static content files either dynamically or pre-rendering whole static pages, minimal metadata (file modification times instead of timestamps from a db) etc.

    When you have a long enough list of requirements you'll probably find that some things have to go in order for the more important things to remain. A litte metadata can go a long way, so providing the option of putting it in a DBM file or a RDBMS via DBI would make sense. The metadata might be gleaned from scanning the HTML files themselves, with some facility to edit what could not be automated.

    I think the hardest requirement would be making it work with pre-existing sites, since the ways one can cobble together a site are numerous. Keeping things simple could entail stripping HTML files down to blocks that can be put into divs, or possibly using frames so that your navigation elements can refer to almost completely unmodified pages as components of the site. You might want to scan for link relationships between existing pages so that a navigation component can be generated automatically.

    All in all, an interesting idea that is certain to be fraught with compromises, like most things worthwhile. To paraphrase Darth Sidious: "I shall watch its development with great interest"
      Yes, I use blosxom on one of my websites. My goal is to create something similar but more general in nature.

      I'm tired of Content Management Systems that seem to get in the way rather than sitting in the background and doing their job. I think in trying to achieve that simplicity, I have over emphasized simplicity. My CMS will probably not be for beginners. It will be for experienced web designers who need something to make their job less tedious but not get in the way.

      As I mentioned in a reply a little above this one, I'm going to split this project into two. The first project will be the lightweight CMS for serious web designers. The second will be a interface that could interact with that CMS for unexperienced web designers or users who do not know HTML.
        Though this is a PHP component, it should be easy to do in Perl (of course!) and might be a useful addition to your armory: http://khad.landak.com/bee/doku.php