If you’re looking to build a website for yourself or a client please keep in mind that Wordpress (or any other content management system) isn’t always the answer. Most websites can be implemented faster, cheaper and better without using a CMS.
5 minute install – lifetime of maintenance
Wordpress has a famous 5 minute install. The problem is that you’re taking on huge technical debt. For the lifetime of the website you’ll need to keep updating and maintaining Wordpress. When you switch web hosts you’ll need to go through the installation process all over again.
I’ve seen way too many websites with outdated installations of a CMS. They “rot” – becoming a security risk, money sink and more importantly a painful experience for the people working with them.
Do you really need a database?
CMS solutions like Wordpress use a database (usually MySQL) to store data (configuration info, website/blog content, etc.).
So what happens when data is stored in a database?
- Your website visitor makes a request – “I want to see your homepage please”.
- Your server tells Wordpress what the visitor wants. Wordpress fetches the right data from the database.
- Wordpress then looks at the options/configurations to make sure it’s doing the right thing. The data is then put in the right places in an HTML template.
- An HTML page is generated and Wordpress returns it to the visitor.
This process happens over and over as the visitor is browsing your website. The database can become a major performance bottleneck so big Wordpress sites end up investing a lot in caching. If you’re showing different content to different people then this might makes sense.
If you’re going to show the same content to everyone then just generate it once, stored it as HTML/CSS, and return the file.
Good web-hosting is expensive
CMS software like Wordpress have certain requirements. They need a database (usually MySQL) and a server side programming language (usually PHP). For $3-4 per month you can get an ok shared server. Want a decent server? Pay at least $15/month. Good hosting costs more than $30/month.
My personal website, not using a CMS, costs less than 5 cents to host on Amazon S3. A free alternative is Github Pages.
What you see is what you get
One of the appeals of Wordpress is that non-technical people can contribute content without needing to code. This is understandable and might be worth the costs of using a CMS.
If content rarely changes or the person doing the editing knows a bit of HTML then a CMS isn’t worth it.
There are also tools out there providing a web-based interface for managing content. You can add Prose to allow a non-technical person to edit their blog/website’s content without needing a CMS.
What’s the alternative?
Use a static site generator like Jekyll. It will take content (HTML and/or Markdown), inject it into a theme (using Liquid Markup), and spit out a fully functional website. This only needs to happen once per website change.
Jekyll can be used to create pretty much anything that Wordpress can be used for (landing pages, blogs, custom post types, etc). The documentation is superb so I suggest a quick look through it to understand the full capabilities.
You install Jekyll on your computer so that means do it once and use the same installation to generate as many websites as you want.
What Jekyll generates is an HTMl/CSS website with absolutely no dependencies so it can be hosted anywhere. You can use the free hosting by Github, push it to Amazon S3 or even FTP it to your favourite web server.
You won’t need a database nor a server side language. No code to maintain and update. You can write your content, back it up and publish it using your favourite editor.
What do I need to know to use Jekyll?
- Be comfortable with the command line
- Be comfortable with basic HTML/CSS
- Be comfortable with Liquid Markup
- Be comfortable with basic Markdown
The skills above are very useful so the investment is well worth it.
Wordpress can be wonderful
I should be clear that I don’t think Wordpress is always a bad idea. There are situations where it’s well worth it. For example, a “non-technical” person can get their website up and running very quickly with Wordpress.
I can help!
This website is generated with Jekyll so you can have a look at my Github repository to see an example of a Jekyll website.
Want to build a theme for Jekyll? Have a look at my port of Ghost’s default theme to see how it’s done.
Already have a Wordpress blog? Use my Wordpress to Jekyll script. The script takes in wordpress XML and outputs a folder of posts in markdown.
If you get stuck, don’t be afraid to reach out.