What is a Flat-File CMS?
Apr 1, 2016
Flat-file CMS systems are proving popular these days for small > medium sized web projects. Designers in their droves are opting to use them over the usual default, WordPress.
WordPress is WordPress. It has evolved over the years from being a simple blogging platform into a feature rich CMS. No question about that. But a lot of these features are not needed by users who just want to blog, host their portfolio, create a landing page for their app or talk about the legal services they offer. This is where flat-file CMS’s come in — or file-based CMS’s.
What are these flat-file thingies you speak of?
In short, the content for flat-file CMS's is stored as individual text files rather than in a database.
Flat-file CMS's are functional out of the box and don't need a plethora of performance tweaks or plugins to function. They are also sans database. Sans database people.
Without requiring a database, these flat-file systems store the content in files or folders. This has a handful of advantages. You don't need to query the database each time you show a page and the flat-file system generates dynamic pages. Each page or blog post it generates is simply in a folder or file of its own (depending on the system and how it is structured). There are then several ways to parse the content. The most popular being XML, PHP and markdown. (Not to be confused with static site generators which act a different way).
What are some of the advantages?
Let's spit them out now then go into the meat and potatoes later:
- *Version Control
- *Portability and maintenance
- *Less expense to run
There's no need to configure or maintain a database and this is a big thing for a lot of people. Saves so much time and often a headache. “Installation” is just a matter of uploading files to a server and boom. Your site is ready.
Without needing to connect to a database to retrieve content makes the site much much faster. WordPress sites, even acutely configured ones, can take 3 seconds to load pages. Most flat-file systems will show content in under half a second. This impacts SEO, conversion rates and user frustration. Flat-file sites are basically loading pages at a blazingly fast rate, even on shared hosting, but if you use something with solid-state drive hosting (like DigitalOcean) then you might shed a tear.
(Author's anecdote. You'll be surprised how many people at the co-working office look at my screen and say "ah your site is only local".
"why?" I say
"Because that page loaded so fast!"
"No, it's live" I jibe.......
(thud) ~ they just hit the floor.)
Databases are often the first thing hackers target and without a database that potential security hole will be completely removed. Not only that, there are often less liabilities with less plugins needed so other potential holes and vulnerabilities are even less. Pulse CMS for example will also have 2-step authentication in a coming update, so that will be even harder for unwanted guests to get in and cause damage.
This is huge. Some people say that having no database is not the game changer, flat-file CMS's can be version controlled through GitHub, for example, and that comes with all the associated collaboration and workflow benefits. Everything is just files and folders so it’s easy to version control absolutely everything and with optional Markdown to edit the content it's a really easy to get sites banged out quickly. And collaborating on sites means it's much easy for academic departments to work with their content, rather than opting for the usual WordPress.
These flat-file systems are not just solid candidates for blogs and collaborative written projects though, but fantastic for e-portfolios, product sites, shops and other brochure or informational sites too.
A flat-file site can quickly be moved to another server without needing to export and configure a database. It's a simple as SFTP or SSH, or drag and drop in most cases. You could put it on a disc if you wanted just to be retro! (Or just send via dropbox). They often come with auto-backup built in too so it's simple to install, transfer and backup. This is a huge step forward.
Less expensive to run
They require less-expensive server usage so can run on any shared hosting, Amazon AWS or DigitalOcean for example. Can be as cheap as $5 a month. Real optimised WordPress hosting often starts at $20 a month. Often more.
Although WordPress is "free" there are a lot of hidden costs such as themes, plugins, optimised hosting and often the need to hire a professional developer to setup and customise it for you, let alone all the time costs you have to sink in to get it right. And you probably won't be 100% satisfied. Trust me.
Databases use up a lot of server resources, even on VPS or dedicated servers — so with flat-file sites there will never be a need to purchase expensive hosting add-ons to ensure your database doesn’t crash and is properly backed up. Flat-file systems however can run on very little resources in fact and if you need to hire a designer to make you a theme they will charge a lot less as their time will be much shorter as they are much easier to work with and template. You could most likely convert a Bootstrap HTML template to run with Pulse in about 30 minutes. Try doing that in WordPress.
At the end of the day
WordPress, Drupal and Joomla are feature powerhouses. You receive an abundance of features and configuration options out of the box, many of which you might not even use, and these are certainly big hitters out of the gate and much of the core functionality shouldn't be in there from the get go. You can add even more features by way of plugins and extensions to these systems, making them capable of doing pretty much anything you could imagine, but that is often not required for most small > medium projects. In addition, flat-file systems most often have some capable plugins these days to give you functionality for most projects, including E-commerce, membership sign up and so on.
A flat-file CMS can be as big or as simple as the designer needs it to be. At its core, it just needs to be able to grab text files and turn them into HTML. That's it. This is most likely less than 1MB. Wow. You have the option to add features like a basic search, content slider, PayPal buttons, Google Maps or breadcrumbs by way of plugins or embeds. And the only heavy things will be your image content. So if you optimise that, it's going to be really lightweight and fast on even mobile connections.
If all you want to do is have a handful of pages that show off your company or your project, have a blog or make a landing page to sell your app or SaaS business, then the larger platforms may be overkill. It would be like wearing a tuxedo to the supermarket. Just not necessary and too much of a hassle.
Keep it simple. Use a flat-file CMS for those simple projects.