Goodbye WordPress: 2014 Will Be the Year of the Flat-File CMS
December 19, 2013
A recent trend I’ve noticed among designers is ditching WordPress for simpler CMS solutions like Ghost, Kirby, Statamic and Jekyll. WordPress is a great CMS but for a lot of sites it can be complete overkill. WordPress started out as a simple blogging tool but has since evolved into a complex, feature-rich CMS that can power very large sites. Most sites simply do not need all of the functionality WordPress offers and the bloat and complexity of the software can start to get in the way.
This is where flat-file (also known as file-based) content management systems come into the picture…
What Exactly Is a Flat-File CMS?
A flat-file CMS is a content management system that stores content in files and folders rather than in a database like a traditional CMS. A database-driven CMS needs to query a database to retrieve content but with a flat-file CMS the content is readily-accessible in a simple file and folder structure. This might sound like you can only create basic sites with limited functionality with a flat-file CMS but that isn’t the case…
Do You Really Need a Database?
My web typography side project, Typewolf, runs on a flat-file CMS. It generates dynamic pages — clicking a font name generates a page showing sites using that font — it just happens to store the site’s content in files and folders rather than in a database. This is what the directory structure of Typewolf looks like:
This blog you are reading uses a flat-file CMS as well. Each blog post is simply a text file inside a folder.
Advantages of Not Using a Database
- Speed — without needing to connect to a database to retrieve content, flat-file sites load pages blazingly fast, especially with solid-state drive hosting (referral link)
- Security — databases are often the first thing hackers target and without a database that potential security hole will be completely removed
- Simplicity — no need to configure or maintain a database — “installation” is just a matter of uploading files
- Less-expensive server usage — databases use up a lot of server resources, even on VPS or dedicated servers — there will never be a need to purchase expensive hosting add-ons (I’m looking at you GridContainers) to ensure your database doesn’t crash
- Version control — everything is just files and folders so it’s easy to version control absolutely everything
- Portability — a site can quickly be moved to another server without needing to export and configure a database
Why Flat-File CMSes Are Going to Be Huge in 2014
There are two trends I’ve noticed that are going to have a huge impact on the use of flat-file CMSes — the rise of GitHub and the growth of embedded services.
The Rise of GitHub and the Importance of Version Control
The days of FTPing into your server and making live edits is over. The use of GitHub has skyrocketed in 2013 and version controlling everything is all the rage. GitHub has opened the eyes of a lot designers and developers to the importance of version control. In a flat-file CMS everything is easily version-controllable — from your content to your configuration. Version controlling a database-driven site is something that is very difficult, if not impossible to achieve.
The Growth of Embedded Services Like Disqus
A lot of the things that you might traditionally associate with needing a database for, such as comments, are making more and more sense to be delegated to a third-party service. Disqus is an embedded comment service that acts as a replacement for the native WordPress comment system. Many WordPress blogs are switching over to Disqus because the features and functionality that Disqus provides are superior to what WordPress offers. It is much easier to let an external service take care of everything, rather than worry about handling everything on your own server.
Another example of a fast-growing embedded service is Vimeo. If you want to have video on your site, it makes much more sense to upload it to Vimeo and let them serve it and deal with of all the technical issues for you. If you did it yourself, you’d have to worry about encoding different versions of the video and how to serve those to different devices, browsers and connection speeds. Using a third-party service like Vimeo makes it dead-simple.
This is a bit of a tangent, but one of my favorite books that I’ve read recently is The Big Switch by Nicholas Carr. The book talks about how one hundred years ago, factories had to generate their own electricity themselves. Eventually power plants came along which allowed factories to just “plug in” to the electrical grid. Then the factory could just focus on doing what it needs to do rather than worry about generating electricity. The same concept is happening with modern businesses. Large companies used to have massive IT departments where they managed their own servers. Now companies can just “plug into the grid” and take advantage of cloud computing services rather than worry about managing the technology in-house.
I see things like Disqus and Vimeo as a grid you can plug into. With services like these, you can gain dynamic functionality while still having a static site. More and more cloud services are popping up every day and this seems to be the direction the world is heading in. Chances are if your site needs something dynamic, then there is probably an embedded service that can do it for you more efficiently.
Popular Flat-File CMSes
There are a ton of database-free, flat-file CMSes out there but the following seem to be the most popular.
Jekyll isn’t really a CMS - it’s a static-site generator that can be used in place of a CMS. Jekyll takes raw text files and generates a completely static website. An awesome thing about Jekyll is that it doesn’t require PHP so you can host your pages for free on GitHub Pages. Jekyll is geared towards developers and requires knowledge of the command line to use though, so if you need something client-friendly then it might not be the best choice.
Kirby is one of the most popular file-based CMSes out there and for good reason. It’s super simple to get up and running with and the entire CMS feels very intuitive. The templating language is PHP-based, so if you are familiar with PHP you will feel right at home working with Kirby.
Statamic is like Kirby on steroids. There is a three-person dev team behind Statamic, rather than the single developer of Kirby, so it has a much more robust feature set. Statamic uses its own templating language which might be simpler to use for someone who isn’t as familiar with PHP. It includes a really nice fully-featured, client-friendly control panel so it’s a great choice if you need to pass a site off to a client.
The Future of Content Management Systems
Obviously WordPress isn’t going away anytime soon. However, I think we are going to see a real trend in the design community of switching to simpler CMS solutions, especially flat-file CMSes due to the advantages they offer in the areas of speed, simplicity, security and version control. It will be interesting to see how this plays out in the coming year.