Created: November 29, 2022

Strapi: Things to Keep in Mind Before Migrating to This CMS

Anton Zaichenko

Anton Zaichenko

Software Engineer

Frontend development
Strapi: Things to Keep in Mind Before Migrating to This CMS

When it comes to CMS, the modern market has already stepped so much that the choice is becoming increasingly difficult. There are so many options for each individual case that it makes your head spin.

We, in Mad Devs, to be more precise our site has been working with one well-known CMS for a long time. But lately, our team occasionally encounters some problems which make the process of working with content on the site heavier. Therefore, it was decided to test and study another CMS – Strapi.

Spoiler a complete move to a new system never happened. But here is this material, which will tell you about what we faced and what you need to know before working with Strapi.

How the selection process took place?

To begin with, the main criterion was that the CMS was open source and headless, as it met the needs of our unique site structure. We had several meetings and discussions, after which the team was able to determine a list of more specific requirements that would meet the needs of every professional who works with the Mad Devs site.

Requirements for the new CMS:

PROJECT MANAGERS CONTENT MANAGERS DEVELOPERS
  • Ability to use сustom blocks;
  • Redirect settings;
  • Ability to use repurposing resources (media files);
  • Large community;
  • Ability to use Meta Tags, Markup;
  • Ability to back up data;
  • Distributed access to individual parts (components settings), preferably with the preservation of editing history.
  • Page mapping;
  • Different URLs - Each page should have its own path;
  • UI creation pages (assemblies), especially when searching for (components, resources);
  • Possibility to edit components library (deletion, editing), reuse of components.
  • Developed API (direct access to the database - requests, direct access to resources stored in the internal structure;
  • Easy work with the context blocks (creating, editing, deleting);
  • Possibility to deploy Headless CRM as a premise.

This helped us identify a list of potential candidates among all the CMS that would meet these requirements.

We have identified the following list of potential working solutions for our project that are on the market:

  1. Strapi
  2. Headless WordPress

After researching, we discovered what was decisive in our choice.

With the help of the JAMstack, Strapi provides a set of backend functionalities for apps and websites that are built using JavaScript, API, and prerendered Markup. It can work with various databases and frameworks such as Nuxt, Next.js, and Gatsby. So it allows Strapi to be one of the most flexible and adaptable headless CMS on the market.

Let's take a closer look at this CMS.

What is Strapi

Strapi is a headless, fully customizable open-source CMS. It's written in 100% Javascript. This makes it one of the most user-friendly for front-end developers. Strapi is based on a plugin system and is a flexible CMS whose admin panel and API are extensible. Every part of this system is customizable according to your use case. Strapi also has a built-in user system for detailed management of what administrators and end users have to access to.

Functionality:

Strapi tech stack:

SQLite

Node JS

PostgreSQL

MySQL

MongoDB

GraphQL

Apollo

Webpack

React

Styled Components

Google Compute Engine

GitHub

Docker

AWS

Strapi is used to create ultra-fast modern websites and mobile applications. The increased productivity is achieved by using Headless CMS in conjunction with a static website generator and maintenance via CDN.

This month Strapi got 50K GitHub stars and became one of the top 150 most popular repositories among the 28 million public on GitHub.

Several organizations have already used Strapi to create and manage their websites, blogs, and mobile applications: IBM, Walmart, Societe Generale, etc.

We also found a similar case while researching.

Specific example of migrating to Strapi

One of the leading fixed Internet providers and mobile communications in Ukraine, Kyivstar has over 26 million subscribers. It also has over 1 million fixed broadband users. In 2019, the company migrated its main website and app to a modern, more performant stack using Strapi.

The company chose to use Strapi due to its large community and ability to be deployed locally. It also provides a powerful page builder tool that can be used to customize its own page design.

The old version of the website had over 6,000 pages, and in 9 months, Kiyvstar migrated over 1000 to the platform and used it for 80% of the traffic.

To make the changes to the website work seamlessly, they created a proxy setting in the framework that allows redirecting the users to the new page. This method ensures that the links stay the same, but it also allows control of where the page opens. After creating a new page, then they turn off the proxy setting and leave the old one as is. This is a configuration system that allows the team to manage the changes to the website.

One of the company's features is a personal cabinet that allows users to manage their services. Before, it was built using various legacy CMSs. They migrated all of the website's components to the new platform.

As a result, they got:

Taking all the above into account, we at Mad Devs started testing. The plan for writing the code base was made, and at the same time, the server with this CMS was deployed for the test release of a single page. As a sample page was chosen: https://maddevs.io/transportation/.

The work was conducted in several directions: 

During the move to the new CMS Strapi, we've revealed some shortcomings, which slowed down the process of moving to this CMS, as well as encountered some inconsistencies with our expectations.

What disadvantages does Strapi have for our case project?

So, we tried to test Strapi for our project because we were interested in increasing the performance of our website. But we faced some disadvantages for us that may be insignificant for other projects. But it is better to find out about the limitations of Strapi's functionality beforehand and then decide whether to start your own website on it or migrate an existing one, as we wanted to do.

Let's list the things we encountered.

1. No changing history

Strapi has no built-in history of changes to a particular document/page. You need to install additional plugins.

2. No component/slice previews

There are no previews for components. All components are marked with icons. With our number of different components, this becomes problematic on the content manager side.

3. Components containing images cause failures of the entire CMS

During the development of components for Strapi, we faced the fact that components containing images cause failures throughout the CMS. The error is easily repeated We've tested several versions of Strapi, and the problem was different but still persistent.

4. No separation of staging and production servers, CI/CD, and database

You will need to manually configure the process of migration from the staging database to the production database, and at the same time, you will need to solve the issue with the migration of files.

5. Installing additional plugins

Many simple actions require the installation of additional plugins. For example, you can't return all of a page's content on demand. Strapi only outputs what subcomponents are used on that page. And to solve this, you need a plugin. Moreover, installed plugins are not updated with CMS updates.

6. A large number of issues

It's worth looking at the current number of issues on Strapi's GitHub page first. There may be some challenges, although this CMS has very good potential.

Faced with these problems, we decided to conduct additional research to understand what are the most common problems developers and other companies have with Strapi.

To sum up 

Strapi as a CMS gets a lot of good reviews and certainly has its attractive merits. However, its functionality hasn't suited the needs of our site and our team, the site performance has grown insignificantly, and the time to fill in the content has increased significantly. But during the work on the new CMS, we found a lot of subtleties that we hadn't thought of in our project. 

We hope that thanks to this material, you can save a lot of your time if you're looking for a new CMS and your needs are the same as ours.