What's the advantage of not using a CMS like WordPress?
Welcome to my today's talk on the advantages and disadvantages of using a CMS or not for a project. This topic came up after a friend of mine asked me the following question:
What's the difference between using WordPress or not, to build a website?
Before I answer the question, let me take you back to what led him to it. We were discussing the fact that I built a client's website from scratch which he was delegated to manage. Unfortunately, he couldn't update the site because he only knows how to Manage websites built on WordPress. He was not ready to dig into the source codes trying to make the little update. Meanwhile, I was trying to make him understand that such way of building a website was great. That was when his question came up.
He's not the only one wondering the same thing. It's not because he is a novice either. This question is frequently asked by professionals and every single developer always asks himself the same question every time he starts a new project: will it be adequate to build this project from scratch or I should use a CMS to make it faster?
Let's try to understand some key-points while making a decision to build a website. The following parameters must be considered everytime you build a website:
- Meet the client's need
The first thing is to meet the client's need. Deliver a website the client can agree with and which serves the purpose of his goals without thinking of how it was done.
- Site's content management
Once the website up and running how is it updated? Rarely you see a website that is not updated at least once a month. What strategy of content management do you adopt to make the client's life easier?
- Code base quality & maintenance
This is more proper to the developer. Your code is something that only a few clients would care about. But, within yourself, as a developer you know that's where your biggest concern is. Even if the client doesn't care, you do care considerably. When there is a system-level update to make, nobody would tell you to do it in your code. You know your own destination: your code. It's thus important to have a strong and good code base.
- Issues management
No website is perfect. If we don't know something is wrong, it doesn't mean all is fine. Websites break all the time, both, in the frontend and backend. Issues can appear in your code or DevOps. You must be able to recover from whatever catastrophe occurs. What strategy do you put in place to respond to those issues?
- Scalability
I usually say that client's don't know what they need until you give them what they don't need. Besides, a website is never complete. They always grow. Growth is the next challenge you face after launching any wonderful website. Technologies keep on changing. User's become more demanding. The competition is tight. The website's owner's taste keeps on changing every day. In fact, after a few weeks of launching, a well-excited client is ready to ask you for an update which could make the website look totally different from what it was first.
It's hard to fix a website at a specific level and assume that it will always be like that. Growth is imminent and unavoidable. When you build a website with a given strategy, make sure it allows easy scalability.
Well, now that we know the least rule for a project, let's see what each technique offers.
- Delivery speed
Can be one of the most important aspects of any job. In many occasions, your first question would be to know if the method you use can help you deliver fast. Any developer would like to have a box of websites. Any time a client orders for a new website, he/she would pick up the right one from the box and deliver. Unfortunately, it's not that easy with websites. Although some method gives that impression.
- Security
It's unavoidable to think of a security measure no matter the size of the website. Your method should offer you the power to secure your website.
Now that we know the few important aspects to look at when deciding on the method to adopt, let's look at how it is possible or not depending on the method.
Content Management System - CMS
- Pros
- Depending on the level of need, a website can be built in no time
- Content editing is usually great. Can allow many managers with various levels of permissions
- You can customize the theme to some extent
- SEO-friendly
- Cons
- Limited strength of scalability
- Limited in customization of features adding/subtracting
- Overload: carrying along a lot that is not needed
- Hard to reach a secured stage without some extra precautions
- High consumption of databases causing a speed issue
- Can be easily attached by hackers
- Many issues occur which are not related to your core business, and caused by plugins
Hard-coded website
Hard-coded websites are also called customized websites. Such websites are tailored to fit a specific need.
- Cons
- Can be slow to build
- Can be expensive
- Pros
Apart from these two drawbacks, any other things are possible. There is no limitation to what one can build when hard-coding a website. To prove that, the CMS themselves have been hard-coded. If you can create a CMS with custom code, there is no need to compare the two methods. Customization is the synonym to control. Even with modern tools like frameworks, we can beat those drawbacks.
Bottom line
I will never say it enough: there is no best, but there is something that suits a situation in a given context. You might love to go for a customized site for your project but you can't afford the charges. Or maybe you don't have enough time. In this case, do not even try it.
You might need your project to go fast and also give you the power to update your content yourself. Do not hesitate to go for a CMS.
It's all about the project requirements and your choice. Always base your choice on your familiarity with each method. Always use the method you are more comfortable with._
Cover image by pixabay