What is a CMS?
A content management system, or CMS, is software that helps developers and contributors publish rich content. Ideally, a CMS will provide easy ways for non-technical contributors to share content, as well as intuitive ways for developers to build the underlying application.
Why a CMS?
A CMS is the perfect tool for cross-functional teams to create pipelines for regularly shipping their products to market. A writer could certainly send each article, video, or photo to their development team, but that process often creates undue friction in the publishing process.
A CMS allows developers to abstract away the complexity of the engineering process and open a door for non-technical contributors. Things like permission levels, conditional user interfaces, and authentication all help streamline workflows.
I love the way Kinsta puts it:
A content management system is a tool that helps you build a website without needing to write all the code from scratch (or even know how to code at all).
What about Coupling?
Many newer content management systems are designed to separate the frontend and backend. DatoCMS, for example, creates the API structure that your frontend can query to display data from your DatoCMS database. These systems are often called “loosely coupled,” or simply “decoupled” systems. Said another way, decoupled architectures do not bind—”couple”—the frontend and backend.
Traditional WordPress development is much the opposite (although a headless approach is quickly gaining popularity). Out of the box, WordPress has a tightly coupled frontend and backend. You may also hear this referred to as a monolithic architecture. It is, therefore, an all-in-one solution and can help a non-technical users spin up a robust site fairly quickly.
Advantages to (Traditional) WordPress
At this point, you may be wondering why a developer like yourself might choose the traditional WordPress route instead of a headless approach. Here are some notable reasons to consider:
- If you are just starting out as a developer, your clientele will likely be small businesses and nonprofit organizations. Most small business owners don’t have the budget for you to create decoupled application from scratch.
- WordPress powers just over 43% of sites on the internet. That’s almost half! Many of these are designed around a the WordPress’ monolithic architecture. It is, therefore, a wise decision for you to learn WordPress as it comes out the box. You’re bound to be asked to debug a WordPress site or, better yet, to build one for your client!
- WordPress is an open source application. That means it costs your clients absolutely zero dollars to use WordPress’ software. The only fees are yearly costs for hosting a site and renewing a domain. WordPress can save your clients a whole lot of cash, making your development services that much more attractive.
- Speaking of cash, it’s important to consider the cost of maintenance. Your clients will typically want as much control of their site as possible. If you went a headless route, they’d likely need to rely on you for future UI/UX updates. With a traditional approach, you can give your clients the freedom to update their site without paying for website maintenance in the future. And, funny enough, when you save your clients money they are more likely to come back to you for future endeavors.
- The traditional approach can help you launch an MVP very quickly. Even better, if you really are set on a headless approach, your client site’s WordPress REST API will always be there for you to use beyond the MVP.
Are You Against Headless Architecture?
No way! I love decoupled applications, along with the many advantages they bring like speed and flexibility. However, from my experience, I know how valuable learning (traditional) WordPress has become for me as a developer. And since I understand the application architecture behind WordPress, I have a more complete understanding of what’s happening behind the scenes in both traditional and headless environments. Now that is a superpower that we can both share!
How Much Do I Need to Know?
Still, if you want to sharpen your WordPress development skills, stick around for the next tutorials in this series. We’re tackling WordPress from the ground up with topics like Git workflows, creating child themes, security, and a whole lot more.
Honestly, this is the series I wish I had when I was first starting out. I hope it will help you bring your WordPress development to the next level. Just imagine what you’ll be able to do with your new superpowers!