Published on

5 Reasons Why You Shouldn't Switch from CMS to Next.js

Contents

In this article, I’d like to explain why the Next.js framework might not be the right choice for everyone. If you're running a blog, news website, or any content platform, it's crucial to weigh both the pros and cons before jumping in. I'll share my experience and explain why I advise against rushing to migrate your existing site to Next.js.

CMS vs. Next.js

Let’s start with some basics. Next.js is a powerful framework designed for creating static-generated websites. It’s versatile enough to handle everything from simple blogs and landing pages to e-commerce sites and online services. One of its key benefits – its outstanding performance, especially when compared to traditional CMS platforms.

To put it simply, Next.js can deliver speeds equal to static pages, which is crucial for content-focused sites. You can check out some examples on the Vercel website – https://vercel.com/templates/portfolio.

I started learning JavaScript three years ago, beginning with native JS, then continuing to React, and eventually diving into Next.js. Before that, I had extensive experience working with various CMS platforms like Joomla, Drupal, and WordPress.

Why CMS Might Still Be the Better Option

CMS platforms are great if you’re just starting out. For example, Drupal helped me run a website smoothly for nearly 10 years. However, I eventually made the switch to Next.js because Drupal’s modules could no longer meet my needs.

Plus, the thought of upgrading from Drupal 7 to Drupal 10 was daunting, especially with a site that had around 1,000 pages with unique layouts.

All CMS platforms have a common downside: despite developers' best efforts to keep them up-to-date, they can become really slow after adding multiple modules. Not every feature has an existing module, and even adding a small function often requires installing a new one. To maintain good performance, you typically need to tweak modules, set up caching, and use lazy loading for images.

Switching to Next.js and deploying it on platforms like Vercel gives you a highly optimized, lightning-fast website right out of the box. The server response is quick, and pages load incredibly fast, which is great for both user experience and search engine indexing.

However, here are 5 reasons why Next.js might not be the best choice for your website. After reading the article, you’ll have a better understanding of what you might gain or lose by changing platforms.

1. The Challenge of Learning JavaScript and Frameworks

Running a website on a CMS is relatively straightforward. You can manage the site and its content yourself or delegate these tasks to someone else. However, with Next.js, you’ll need to invest a significant amount of time in setting up your project, even if you use a starter kit.w

For example, I really like the Tailwind Next.js Starter Blog. It includes built-in support for SEO, Markdown, Google Analytics, and other services.

But there are challenges: customizing the article list view, adding widgets, and setting meta tags for category pages can’t be done through a visual editor. To tackle these tasks, you’d either need to hire a JavaScript developer or accept limited functionality—unless you’re ready to learn JavaScript, then React, and finally Next.js.

If you want a user-friendly editing interface, you’ll also need to set up a backend, which leads us to another issue.

2. Content Editing Isn't Always Convenient

Instead of storing data in a MySQL or PostgreSQL database, Next.js lets you keep your articles almost anywhere, such as in Markdown files. These files can include metadata like publication dates, titles, and descriptions, as well as images, tables, and footnotes.

But if you're managing a large content project or a news website, rather than a simple blog, you might run into some challenges:

  1. Collaboration: Working with other editors can be tricky. Collaboration typically happens via GitHub, which might not be the most convenient tool for journalists or copywriters.
  2. Tricky workflow is a second problem: Even if you're working alone, you’ll face a lot of manual file handling. For instance, updating a link in an article requires locating the file on your local machine, opening it in a text editor, and editing the text manually.
  3. Slow deployment: After each update, you'll need to deploy the changes to synchronize them with the server. This means that changes won’t be visible right away; they'll only go live after deploying the project.

3. Complexity in Front-End Customization

In a content management system (CMS), all necessary settings are typically accessible through the admin panel. With Next.js, however, you might find that the editor lacks visual settings.

For instance, if your articles are stored in Markdown, they might not always display as expected on the site. Without an instant preview in a WYSIWYG editor, it can be challenging to predict how the final layout will appear, especially for documents with complex formatting.

4. A Resource-Intensive Site Can Be Expensive to Maintain

Next.js is a product of Vercel company, and to get the most out of this framework, using their platform is ideal. Currently, a Vercel Pro account costs $20 per month. While this might seem affordable, be aware of the limitations within the pricing plans. You may incur extra costs if you exceed the resource limits not covered in the base plan.

For example, you’ll face additional charges if you need to optimize more than 1,000 images. I ran into these costs shortly after adding a new project with a lot of images to Vercel. You can check Vercel's website for a detailed overview of all limitations.

On the other hand, with traditional web hosting, things are simpler. I pay just over $20 per month for hosting on DigitalOcean, where I have a standard CMS installed on a droplet. Even with a traffic usage of 1 million users per month, the site hasn’t exceeded its limits.

While high-traffic sites might need optimization and caching, you won't have to pay extra for advanced features that are optional on Vercel. With Next.js, you can disable some optimizations, but it can be much harder to optimize your project without programming skills.

The Speed of Next.js is Not Necessarily an SEO Benefit

I initially thought that Google would boost my rankings simply because my site loaded faster with Next.js. I also expected improvements in user engagement metrics like bounce rate, and hoped users would appreciate the fast page loads.

Unfortunately, that wasn’t the case. SEO is influenced by many factors, not just speed. If your site has been flagged by Google's spam filter or lacks authority, faster loading alone won’t improve your rankings. So, don’t rely solely on speed as the key factor in your SEO strategy.

To see this in action, compare your site’s performance with your competitors’ using tools like Lighthouse. You’ll find that some competitors who aren't optimized as well still rank highly.

So, Is It Too Early to Move to Next.js?

I’m not saying Next.js is a bad fit for every project. However, my experience shows that there are challenges to consider before moving your site to this platform.

Next.js can be a great choice when used as a frontend with any CMS you prefer for the backend. This setup, known as Headless CMS, allows for flexibility. For example, you can use WordPress with Vercel, or explore other CMS options like Contentful or Drupal.

This approach can work well if you can tailor it to your specific needs.

Conclusion

Before making the switch to Next.js, keep these three key points in mind:

  1. Assess Your Resources: Do you have the time, budget, and JavaScript skills needed for this transition?
  2. Compare Platforms: Look at how your project will perform on both your current platform and Next.js—what will you gain or lose by migrating?
  3. Backup Your Site: Make sure you have a backup of your site so you can revert changes if needed, without impacting your business.