Vincent Déniel

The right tool for the job

When I started programming for the web, I came across what seemed to be the solution to my problem. I wanted a blog and here was Wordpress, the most popular blogging platform in the world. Wordpress makes 25% of all websites. Therefore, it’s easy to find tutorials to set it up and running or find a solution when facing an issue.

After a few years in web development, I’ve tried several CMS, frameworks and tools and I came to the conclusion that in my case, using Wordpress was a case of over engineering.

Let’s see what I really wanted, a website where I could:

introduce myself and show what I was doing (resume)

let people contact me (contact form)

post blog articles about topics I like and have a system allowing people reply to it

From the beginning, I knew my site wouldn’t become a news platform with several people contributing everyday. It was and still is a personal blog where I’m the only one posting articles and the event of posting occurs once every month/year.

A static website, generated with a static website generator is a solution that fits perfectly these requirements. I use Pelican because of the habit of using Python for work but there are plenty of others for other languages (Jeckyl for Ruby, Gatsby for Javascript/React, etc.).

All I have to do is write my articles using markdown or reStructuredText (which is not a problem for me, being a developer) and generate my website with a simple command. I don’t need a WYSIWYG backend interface to type my text in. I don’t need to wait for a manager’s approval to get the article actually publish. Wordpress was solving problems I didn’t have.

Do I need to go through the whole process of database calls and caching results for performance? No. I went from a load time of 1.36 seconds with Wordpress to 0.48 seconds with the static site.

I don't have to maintain my site and my plugins up to date because of frequently discovered vulnerabilities anymore and that's a huge advantage over any CMS.

I'm not saying Wordpress or any other CMS is a bad solution. What I'm saying is that, in my case, there was simpler and less expensive solutions.

A common pitfall when engineering a solution is focusing on flexibility that might solve problems you don't have yet and might never have in the future. Some solutions might seem shiny but introduce some complexity and It might end up costing you more time and money than it actually should have. So just keep it super simple until it needs to be otherwise!