I’m noticing an interesting trend amongst geeks in the last year. A lot of them are rolling their own CMSs as a learning exercise and for their own personal sites. And most of them have a few things in common :
- They publish to static html or minimally, build static files and don’t have a database
- The source files are straight up text, markdown, textile or they’re using an editor like MarsEdit, Ecto or TextMate through XML-RPC to post
- It then deploys or rsync’s for them from a local copy (a la capistrano or rake)
- It’s all source code version controlled with rollbacks (a la git)
- Backups are a snap
- Portable as a macbook air (as in, copy or deploy files over to a new hoster)
Now I can respect and totally understand this since, I do dev and have to admit before I put my migrated wordpress installation under git and capistrano deploy it would have been an utter pain to manage.
Another example of this is Mr. NetNewsWire Brent Simmon’s inessential.com: New publishing system/tour of my head post on the templating system he wrote in Ruby (not Rails) which seems to work similarly to Karmi’s Marley written for Sinatra (which I considered before moving back to Wordpress from Simplelog). And, of course, a lot of people will point at Webby in this space.
OK, I’m not saying I’m about to move AWWS to something similar anytime soon, but it is compelling. And, I have really noticed a trend recently towards hand rolled CMS’s coming up again (a recent project with one of our Sections at the office and a few other charities I’ve spoken to recently). I should also point out that the web site of my last company, while mostly hand rolled was a simple deploy from svn for changes which I thought was always quite nice though templating would have made it much more powerful and provided better separation of content and presentation (which is really what we all want in the end).
(Oh, one other thing seems to be the number of people who are building these systems in Ruby as a learning exercise and how they all use the same word to describe their experience with the language in a near-production setting: fun)dev ruby