As with most things in my life if I don’t get excited about using it constantly and don’t feel like I can control every aspect I lose focus. This blog in particular has suffered as a result of my choice of CMS and I feel like I need so I’m going to redesign my online life.
Don’t get me wrong I love WordPress and for those looking for a web-based CMS I only ever recommend it but it’s not for me. I’ve been toying around with the idea of a ‘local CMS and static file’ approach for a while and think I’m finally ready to make the jump.
Local CMS and static file – Ey?
Most modern CMS websites work by having a database on a webserver which when the end user visits gets queried for the website’s content, similarly when the site editor(s) log in they are interfacing with the CMS which then edits this database. A static file website basically means that the result of the CMS based site editing (adding pages etc) is uploaded to the server as actual files (not a dynamic database driven url).
The advantages of database driven websites are plenty and with a CMS like WordPress it’s really convenient to be able to have apps on your various devices to blog on the go (or in bed) but with all the advantages come the disadvantages. As the website is reliant on a database it means that when you visit the page the server needs to query the database everytime, this can be (depending on the size of the site) rather computing intensive and databases are easily hackable.
By removing the database aspect there are two advantages; it’s more secure (no naughty SQL statements that can delete an entire site) and server computing needs are massively reduced. By moving the CMS side of things to my local machine it means I can make changes to the CMS with very little impact to the end-users experience.
What’s the big plan then?
I’ve recently bought myself a new domain name (colinwren.is) which I’ll be using to make my new website, the hosting I’ve got for it (Icelandic domain names can only be hosted by servers that are registed with ISNIC so my cheapo £75 a year hosting did’t cut it) only allows PHP and one MySQL database. I get charged by the GB for the database and disk space so any bloat needs to be trimmed to keep it cheap.
When thinking about the setup I need I pulled together a few features I want:
- Should use Git and Github so I can sync files between my computers
- Should be able to use Markdown to write content for posts and the site
- All data to help the site should run on JSON
- While the end product will serve static files the local side of things should function like a normal CMS and compile the site ready for publishing (using git for version control)
How would this be achieved?
I’m still looking at the options but I’m probably going to role my own Python script / CMS that would allow me to do as a wish but help with some of the heavy lifting while using Git so I can backup the site with a few commands.