DEV Community

Cover image for When to Use a CMS Instead of a Framework

When to Use a CMS Instead of a Framework

Wafa Bergaoui on February 13, 2025

Introduction In the ever-evolving world of web development, choosing the right tool for the job is crucial. As a full-stack developer, y...
Collapse
 
sugrivlodhi profile image
Sugriv Lodhi •

The detailed breakdown of use cases, advantages, and limitations makes it easier for developers to decide the right approach for their projects. I especially liked the section on headless CMS and how they integrate with modern frameworks.

Collapse
 
pengeszikra profile image
Peter Vivo •

I saw a worst solution of combine next.js with contentful, using inhouse npm module. A real maintanance nightmare.

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Oof, I hear you—bad integrations can be a nightmare! 😅 Next.js + Contentful can work great, but yeah, poorly designed in-house modules can ruin it. Did you find any better approaches or solutions? Always curious to learn from others’ experiences!

Thread Thread
 
pengeszikra profile image
Peter Vivo •

No, I move to another company, another problems :) - a bad react architecture with poorly designed AWS use. Currently fixing those.

Thread Thread
 
wafa_bergaoui profile image
Wafa Bergaoui •

Bad React architecture and AWS misuse can definitely be a headache. Good luck fixing those—sounds like a great learning experience though.

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Thanks a lot! 😊 Really glad you found it useful, especially the headless CMS part. It’s such a game-changer for modern dev workflows.

Collapse
 
xwero profile image
david duymelinck •

"Traditional" CMS solutions can provide a rest API, for example Drupal. It is not a headless CMS service only feature.

With the headless CMS services there is a vendor lock-in. So they can go up in cost or strip features. I knew one project where the headless service just stopped, so they had to migrate to another CMS.
It is easy and fast when you use a service, but for long term projects I recommend a solution that gives you more control.

I would not call Shopify, WooCommerce and Magento CMS solutions. They are e-commerce solutions. While they have some content management, they are focused on selling things. Like a CRM manages user content, the main goal is to provide ways to attract and keep customers.

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Great points! You're absolutely right—traditional CMS platforms like Drupal can also provide REST APIs, which makes them quite versatile. And I agree that vendor lock-in is a real risk with headless CMS services. It’s always a trade-off between speed/ease of use and long-term control, and for some projects, having more control over the stack is definitely the way to go.

As for Shopify, WooCommerce, and Magento, I included them because they often overlap with CMS use cases, especially for businesses that need both content management and e-commerce functionality. While their primary focus is on selling, they do offer robust content management features that make them a hybrid solution for many use cases.

Thanks for sharing your insights! If you’ve got any recommendations for balancing control and convenience in CMS/e-commerce setups, I’d love to hear them.

Collapse
 
xwero profile image
david duymelinck • • Edited

I understand you point of view about the ecommerce solutions.
I see a CMS more as a framework, and that can contain specialised solutions like e-commerce, CRM, DAM. Most of the time they are used without a clear distinction between the different parts, like Shopify and Magento.
But I wouldn't use the two solutions only for the CMS,

I agree with your conclusion every project has their own requirements and constraints. And we have to decide what the best solution is based on those terms.

Collapse
 
kenan_recebli profile image
Kənan Rəcəbli •

I just wrote my own CMS and use it for every project. It's very scalable, so if a project requires additional features, it's very easy to add them. I try to keep my CMS updated and it was completely rewritten twice (the first time I completely changed the architecture, the second time moved to Vue 3 and also changed the architecture). Sometimes even just change the frontend HTML part and remove (or just disable) unnecessary modules and project is ready for production 🙂

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

That’s seriously impressive! Building your own CMS is no easy task, and it sounds like you’ve really nailed the scalability and flexibility part. Rewriting it twice—especially with the move to Vue 3 and architecture changes—shows some serious dedication. Hats off to you!

Collapse
 
kenan_recebli profile image
Kənan Rəcəbli •

Thank you!

Collapse
 
manoj_kumar_5d873d6a1937f profile image
Manoj Kumar • • Edited

I've often wanted to bring this up with individuals who are relatively new to web and web application development. No matter how much I try to explain, they just don’t seem to grasp it.

Hopefully, they'll come across this article and give it a proper read. Only then might they start to understand and appreciate that web development isn’t a one-size-fits-all approach, especially when clients have specific demands.

Fantastic article btw 👏

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Thanks a lot! 😊 You’re so right—web development isn’t one-size-fits-all, and it’s not always easy to explain that to newcomers. Hopefully, this article can help clear things up a bit. Really appreciate your kind words!

Collapse
 
riya_sree profile image
Riya •

Simple, clear, and valuable. Exactly what I needed—great work!

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Thank you! 😊 Really glad you found it helpful.

Collapse
 
ruchi_kumari_205ad7449772 profile image
Ruchi Kumari •

I have also written a blog on CMS. Take a look!
wpfolk.com/blogs/wordpress-like-cms

Collapse
 
wafa_bergaoui profile image
Wafa Bergaoui •

Nice! I’ll definitely check it out. Thanks for sharing! 😊