January 20-22, 2012, Hilton Los Angeles Airport Hotel

Advanced web content management with revision control

Don Marti


The new generation of web content management systems uses a revision control system such as git, Mercurial, or Perforce, instead of a relational database, for storage. Using revision control can open up your site to advanced workflows formerly available only to software developers. For example, you can merge ongoing layout changes or corrections with a major rework of site content. Multiple staging servers can run on separate site branches, allowing you to apply the revision control system's merge functionality to reconcile changes.

Users do not need to be aware of revision control features such as branching and merging. Simple wiki-like or WYSIWYG editors let most users have a simple workflow, while branching and merging functionality is available to those who need it. In this talk, Don will demonstrate several next-generation WCM systems, including Ikiwiki, Jekyll, Perforce Chronicle, and one or more others. We'll cover some amazing examples of workflow enabled by revision control that would have been a mess for a conventional WCM system.

While it has long been possible to simply store HTML in a revision control system, modern WCM requires application features such as commenting and integration with external applications. This talk will show how to build a workable bug tracker and a blog with comments. Programming models for working on top of a revision control system are different from conventional SQL, but also very powerful. We'll look at the simple but capable PageSpec expressions in ikiwiki, as well as the ORM-like Records of Perforce Chronicle.

Most intermediate and advanced Linux users have some experience with git or another revision control system, so this talk should be immediately applicable for anyone who wants to apply the power of revision control to building a web site. A great selection of revision-control-backed WCM systems has sprung up recently, so now is a great time to begin understanding how this new way of working on the web can help you.