You may have already heard it said: “This is the year of the flat file CMS.” You may have even looked at a few and wondered why someone would use a system like that instead of WordPress or Drupal.
Before we go any further, let’s define what a Flat File CMS (FFCMS) is. The name itself gives a big hint of how they differ from traditional CMSs. A traditional CMS like WordPress or Drupal has page templates that are connected to a database where all the content from your posts and pages are stored. When you go to a page on the website, the template makes a call to the database for the content it needs, and then displays it on the page for the end-user to read.
In contrast, an FFCMS doesn’t have a database; it just has files. There are no database calls being made every time a page is loaded. This doesn’t mean that you have your page templates mixed in with your content, it just means that your content is stored in folders and files, rather than a database.
Why use a FFCMS?
Speed
Because you don’t have to wait for database calls, FFCMSs are usually faster than their traditional counterparts.
Also with a FFCMS, since you are dealing with just files, it is super easy to setup your site with Amazon’s blazing fast S3 servers for just pennies a month. So not only do you get more speed, but you also get it for cheaper! It’s the best of both worlds.
Version control
A big problem for traditional websites is that your content is stored in a database and you have to make regular site backups to make sure you don’t lose information should your site ever go down (or get hacked).
The beauty of a FFCMS is that all your sites files are just files, and they can be put under version control. So every time you edit a page or blog post in your site, you simply make a commit to Github, or whatever your favorite version control tool you use, and voilà, you have a site backup. The same goes for making template edits or style changes. Everything you do can be saved and archived, to be returned to later if need be.
If you make a change and for some reason something breaks, no problem. Simply roll back that commit and you are back on track. Or say you make a style change and your client doesn’t like it for some reason – no worries, simply roll back a commit or two and you are back to the old look.
Client is happy, developer is happy!
Easier setup
While WordPress does have its famous 5 minute install, sometimes it does take a while to get the server environment just right before everything is ready to go. This is especially true when you are developing on your local machine. On my computer I have tons of different WordPress installs and accompanying databases for all the different client sites I’ve built.
Every time I want to make a site edit, I have to load up my development environment server, and test out the changes to make sure everything looks good before uploading the changes to the server.
The beauty of a FFCMS is that there is no database setup. You don’t have to waste time setting up your database or even copying tables of content back and forth from the server for testing.
Easy site migration
Having a FFCMS makes it very easy to move your site from one hosting provider to another. Since your site consists of only files, all you have to do is copy your root folder from one server to another.
Contrast that with a traditional CMS system where you have to grab all your site templates, make a copy of the database, upload the templates to the new host, and drop in all your tables to the new database. Because of this, you can easily see why many developers are excited about FFCMSs.
The downsides of FFCMS
So now that we have looked at a bunch of positive reasons to use a FFCMS, what are the downsides to it? After all, if it was all rainbows and roses, why isn’t everyone using them?
You have to learn a new system
Just as if you switched from using WordPress to Drupal, with a new system comes new templating tags and different things to learn. One of the exciting but new things about many FFCMSs is that they use standard templating languages like twig or liquid to build out the logic of their templates. Templating languages are definitely the future of the web, but not many big name CMSs are currently using them. This means that many developers will have to learn a new “language” before they can start using a flat file system.
(Templating languages are definitely becoming more widespread, and even Drupal 8 will be using twig for its templates. So as a developer looking to keep your skillset current, you should definitely start learning Liquid and/or Twig.)
The community may not be there yet
One of the downsides of many of the FFCMSs is that they don’t have a large community behind them to help troubleshoot errors that come up, or to add new features that you request. This is not really a problem with software, it’s just that many of these CMSs are brand new and so the community is not there yet to support them.
Also, just like any new product that comes out, it may not have all the features you are used to in traditional systems. So you may have to build a few things out from scratch. Eventually though, FFCMS’s will catch up in features and may be stronger than existing tools.
So keep that in mind as you look to start using a new CMS, that you may be on your own a little when first starting out. Thankfully though, most FFCMS systems have excellent documentation.
What FFCMS options are there?
There are an ever growing number of FFCMSs entering the market. That alone should indicate it’s an area worth investigating. Here are a handful of my favourites:
Statamic
Statamic beautifully blends static and dynamic content. Unfortunately it costs $99 for a single site commercial license.
Kirby
Kirby is a great FFCMS, with markdown support and superb flexibility. Unfortunately it costs also $99 for a single site commercial license.
Pico
Pico uses markdown for content, just like your favourite writing apps, and the Twig templating language.
Jekyll
Jekyll is a great static site generator that takes content in a variety of formats, runs it through Liquid and produces a site ready to publish.
Should you switch to an FFCMS?
Developers and even lots of designers are excited about using them because it makes their lives easier to setup most small-to-medium-sized websites.
In reality, your clients are probably not going to care if you are using WordPress, Drupal, or the latest and greatest FFCMS. What they care about is a system that makes it easy for them to edit their pages and make simple changes to the website. Make sure you choose one that has a nice, user-friendly admin panel for them to edit pages.
As a site designer, if a FFCMS makes it easier to build a site, simpler to maintain, cheaper to host, and more worry-free to back up, these are the things that you can sell to a client because you are saving them precious time, frustration and money.
Flat File CMSs are definitely a new and exciting way to quickly build a usable, maintainable website.