The Content Management System of my Dreams (part 1) — A little bit of history
The world needs more static sites but does not need yet another SSG munching Markdown files.
Each and every time I encounter a new CMS I cry and want to design a new one. No wonder why there is a flurry of half-baked “off-the-shelf” CMS and even more custom ones out there.
Most tech people do not understand the sweet spot between designing and editing a web site, its content management, static vs dynamic publishing, and all their users real needs. Or even who are the real users of the end product.
A little history about a forgotten jewel
In 2001 — that's 22 years ago, about a bazillion years in web time — a tiny two-people company named Six Apart, announced and published Movable Type. It was a blog engine that, from the start, allowed one to publish any number of blogs, related or not down to their domain names, with a 100% web UI that allowed designers, contributors, editors and site visitors to do what they each wanted to do.
Designers could create and manage all templates using a browser. The template markup (MTML) would prevent, by design, obvious security issues by simply not allowing anything outside what it was designed to do: display content — whatever it is, it did not care if it is HTML, PDF, PHP and whatnot — in the site style.
It did not prevent one to extend the application logic, using either a scripting language of their choosing, or developing plugins that would expose new MTML tags.
It introduced a very powerful concept: the ability to publish anything as files, with a template logic allowing to generate index pages (like the home page), listings (e.g. a page listing blog entries, lists generated through custom rules such as tags, categories, date-based archives etc.), and custom shared templates you could use directly in other templates and computed in-place or just once and included either via an internal cache or via Apache and PHP includes.
Cherry on the cake, it included a very smart internal cache system that would allow the designer to tell MT exactly when and where to refresh files. This particular ability, which about no CMS gets right 22 years later, would allow MT to publish a blog in 100% static HTML files with visitors comments added on the fly by republishing only the strict minimum of pages (obviously the commented blog post, along with any page impacted by it, like a page displaying the latest comments or their number).
Yes, 22 years ago we had a CMS that would allow dynamic content on a static site. And even if it needed a database for content management, it would not for serving content. You could shut down your database server, the site would continue to work just fine if no new content needed to be published. If you had to face a spam attack throught comments, you could just disable one file and your site would still work, just without new comments while waiting for the wave to pass.
You know what? Movable Type is still alive and kicking today. Albeit in Japanese and developed by a company that used to care about editors outside Japan.
I have been using it from day one of this blog (né Year II before LLM). I have tried a few times to play with a new CMS only to go back to MT.
I have built several sites, one of them growing over a million PV per day on a single small web server that did not need any upgrade for years, another one that has quite a complex set of content and sustained years of attempts by WordPress lovers to replace it, only for them to come to love MT at the end, each and every time.
Next in this series: The trouble with dynamic publishing.