Why a CMS is not always the way to go - Middleman
There are so many CMS choices nowadays that especially for inexperienced Users, it is hard to get a grasp of what to choose. Each CMS has its own up- and downsides and of course an avid and defensive fanbase. Many projects are even set on a specific plattform before the planing phase. This is a bad choice to make for obvious reasons.
And then there are these projects where you pretty soon arrive at the question if you even need a CMS to begin with.
Classic Content Management Systems share a heavy- and sometimes bloated code base that - in terms of resources - is expensive to host.
Once you use languages like PHP and connect to Databases like MySQL you inevitably arrive at bottlenecks. Pages have to be (re)generated for every single page load, meaning the Users request has to be handled, database queries have to be executed, templates have to be evaluated and an HTML output has to be generated to be sent to the Users browser.
To accelerate that, your Agency of choice will setup caching systems like Memcached, to keep the generated HTML output in memory and to serve it without rebuilding each time. This has many of its own problems, as I am sure many of you know and the complexity gets raised at each step you take.
But Resources really come in second when it comes to security. Popular CMSs like WordPress, Joomla, Typo3 are targets for attacks not only by people but by bots. Wether you host something popular or just a small knitting blog is irrelevant. Once your site is out there it becomes the target of attacks of all kinds which is why the system and all its components have to be kept up to date and to be tightly secured.
Before you get the wrong idea thow: We love to set up and tweak Content Management Systems for you and your project - when this is the right choice. There are many excellent and legitimate use cases for full blown CMSs. WordPress will offer great tools for maintaining a magazine or blog style website, with Neos you as a user will get a great and very intuitive backend while it is a breeze to implement complex content models. These are just not the answers to everything.
This is where static site generators like Jeckyll or Middleman step in. The project is developed locally with all the treats modern web development has to offer like:
- Sass and LESS compilation
- Automatic Page Reloads during development
- Local Web Server
- Variables and structured data
- Templates and Layouts
- Archives, Categories, Pagination
And most importantly a build and deploy process:
When you build your site, Middleman parses your projects assets and outputs static HTML files. During the build, you may compress your images, minify and uglify your source code, generate Sitemaps or XML Feeds and much more. Your optimized build can then be hosted on the simplest webserver by uploading it by hand, or by deploying it automatically after the build.
Some of the just mentioned points are rather technical, but what it comes down to is this:
If you as a customer don't need the ability to update your websites content every other day (by yourself), it is much cheaper, more clean, much more secure and often times way faster to build your site with a static site generator like Middleman.