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.
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.
The commenting can be handled with popular tools like Disqus.
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!