Blog

Pourquoi envisager de passer de Drupal à Storyblok en 2024 et comment réussir cette transition en douceur ?

Maxime Topolov
Maxime Topolov
September 9, 2024
-
Drupal a gagné en popularité grâce à sa flexibilité et à sa large gamme de modules pour les sites web complexes. Cependant, cette complexité et ses coûts de maintenance élevés ont poussé de nombreuses entreprises à se tourner vers des CMS modernes comme Storyblok, qui offrent des solutions plus simples et plus évolutives.
 
Pourquoi envisager de passer de Drupal à Storyblok en 2024 et comment réussir cette transition en douceur ?

Why has Drupal been so popular for the past decade?

Drupal was extremely popular because it provided a one-stop shop for content authoring experiences and more broadly everything you could find on a website. Unlike its even more popular counterpart, WordPress, which was more suited for smaller-scale websites, Drupal offered modules for almost any feature you could think of: comments, polls, workflows, APIs, search, forms, and even analytics. Each module was built by different companies or individuals, leading to unequal quality in terms of code, security, or features.

You could also link modules together to build more advanced features, but this ultimately created a spaghetti hell of hundreds of interconnected modules to maintain. Many companies who initially bet a lot on Drupal are now moving away from it (aka Johnson & Johnson, LVMH or Saint Gobain are among them). Let’s see why:

The reasons why Drupal might not be the best choice for you.

  1. Drupal is too complex. Building on Drupal requires expert developers, even if you're creating a simple website. They need to understand Drupal architecture, know the best modules, and how to build different features using a combination of Drupal and modules. For example, suppose you want to implement a publication workflow with notifications and RBAC on top of them. In that case, you will have to manipulate multiple modules, Drupal core, and implement quite complex logic.

  2. Drupal is hard to scale and host. While there are multiple choices to host Drupal, there is no editor and no real SaaS offering. You can go with Pantheon or Acquia, but they will only provide hosting and no support for your codebase.

  3. Drupal is very expensive to maintain. Being open-source, you don't pay for licenses, but on the other hand, you will have to pay for everything else: hosting, scaling, security updates, bug workarounds, each new feature, and each new page or template.

  4. Drupal is not adapted to modern architectural patterns. It's a PHP monolith with a paradigm from 20 years ago. Today, headless CMS and composable architectures are key. You want total freedom on the front-end, at least enough freedom constrained by your design system, while relying on multiple back-ends, with the CMS being only one of them.

Why migrate from Drupal to Storyblok?

Storyblok is a new player in the space of headless CMS. It provides everything you need to manage content and distribute it over any channel. 

Reason 1: Headless made simple

In 2024, a headless CMS is essential for delivering flexible digital experiences. By decoupling the front end from content management, a headless CMS allows developers to create any kind of front end without constraints. This flexibility is crucial as content management becomes commoditized, and businesses prefer not to deal with the complexities of handling, hosting, and scaling a CMS.

Storyblok stands out with its API-first approach and visual editor, offering a simple and consistent API usable by front-end developers across frameworks like React, Vue, or Angular. Unlike Drupal, which requires multiple modules with disparate APIs, Storyblok provides a streamlined experience, enabling businesses to focus on creating content and user experiences without technical limitations. This approach meets the modern needs of scalability and flexibility, allowing companies to quickly adapt to market changes and deliver seamless digital experiences. 

Reason 2: Centralized Content Hub with omnichannel distribution

Your content writer crafts a compelling blog article that resonates with your audience. You want to transform this blog post into LinkedIn posts, repurpose its content for case studies, publish a Twitter thread, create Instagram cards, and generate a downloadable PDF lead magnet. Your team spends countless hours reviewing, copying, and pasting content across different platforms: some content is in your Drupal CMS, others are in Google Sheets or Smartsheet for validation and planning, images are stored in a digital asset management system, and your social media team works in WordPress. Sound familiar?

This chaos can be resolved with a consistent, centralized content hub. Create once, and reuse everywhere. By integrating multiple brands or languages, you can streamline your content workflow. 

With Storyblok, you can easily set up multi-step workflows, create content variations, and enable collaboration among all your teams around each piece of content. You can then seamlessly integrate any distribution channel through Storyblok’s API using tools like Make or Zapier, or by directly connecting Storyblok with your content channels such as social media planning engines, e-commerce platforms, PIM, DAM, regional sites, partners, PDF generators, or print CMSs.

Reason 3: A Visual editor that finally works!

The Drupal 9 Layout Builder offers customization for content pages, but it's not as intuitive as it seems. While it provides drag-and-drop functionality, users often face a steep learning curve due to the complexity of its features. To use it, you need to enable the Layout Builder and Layout Discovery modules, which can be daunting for those new to Drupal’s backend. Customizing content types involves several steps, like enabling "Use Layout Builder" in "Manage display," adding sections, configuring blocks, and saving changes, which can be confusing. While it applies layouts to all articles by default, customizing individual articles requires enabling additional options, adding complexity. Although Layout Builder offers extensive control, its interface can be challenging for non-technical users, potentially requiring extra training or professional help to use effectively.

Storyblok’s Visual Editor, on the other side, is a highly intuitive and efficient tool for content editors, providing a real-time preview and seamless editing experience that makes it easier to use compared to Drupal's Layout Builder. It supports two editing modes: Visual and Form Only. In Visual mode, users can see and edit their content directly on the page, providing an immediate view of changes, which is more intuitive than the often complex setup in Drupal's Layout Builder. Storyblok allows users to add blocks by simply clicking on parts of the page, with a content panel that facilitates easy rearrangement through drag-and-drop functionality. This contrasts with Drupal, where adding and configuring sections can be more cumbersome. 

The visual editor also offers features like changing preview screen sizes for different devices and a rich text editor with advanced styling options, allowing users to see how content will look when published. Navigation between different entries in Storyblok is smooth, with a stacked view option that lets users view and edit nested stories without opening new tabs. Storyblok supports collaboration through in-editor commenting and discussions, eliminating the need for external communication tools. Workflow management and content scheduling features are integrated, providing a streamlined way to manage content stages and publication timelines directly from the editor. Overall, Storyblok's editor is designed to enhance collaboration and content management with a user-friendly interface that simplifies the editing process, making it a preferred choice over Drupal’s Layout Builder for those seeking ease of use and efficiency.

Reason 4: Easy to extend: add new technology inside your CMS without adding tech-debt.

In Drupal, the only way to extend functionality is by installing modules. While these modules add features, they can also make Drupal heavier, potentially introduce security vulnerabilities, and often vary in quality. This can lead to an inconsistent experience for users.

In contrast, Storyblok offers a flexible plugin system that allows developers to customize its functionality without these drawbacks. Storyblok's plugins enable integration with third-party platforms, creation of custom content structures, enhancement of the editing experience, and the addition of new functionalities. There are three main types of plugins in Storyblok: Field Plugins, Tool Plugins, and Custom Sidebar Applications.

Field Plugins enhance the Visual Editor by adding custom input options and supporting integration with external asset management systems. Tool Plugins add new tool windows within the Visual Editor for tasks such as importing and exporting translatable content. Custom Sidebar Applications are full-page views accessed from Storyblok's space start page, suitable for functions like broken link checking and task management that integrate within Storyblok but are outside the content editing interface.

Storyblok plugins are standalone web applications embedded using iframes, allowing them to integrate seamlessly with the Storyblok application through cross-window communication via the `window.postMessage` method. They can also access Storyblok's backend through the Management API using OAuth 2.0 authentication. This system provides developers with the flexibility to create tailored solutions for content management and enhancement without compromising security or performance.

Reason 5: Embedded Security: you don't have to think about it!

Securing a Drupal site is a challenging task that demands constant vigilance and expertise. Regular updates of the Drupal core and modules are crucial for addressing vulnerabilities, but they require meticulous attention to ensure compatibility and security. Implementing SSL/TLS certificates for encrypted connections is technically demanding and resource-intensive, requiring careful configuration and maintenance.

Ensuring comprehensive site backups, securely stored off-site, involves significant infrastructure planning. Configuring HTTP security headers, like Content-Security-Policy and Strict-Transport-Security, requires an in-depth understanding of web security protocols. Monitoring user roles and permissions involves continual auditing to adhere to the principle of least privilege, demanding constant oversight.

Sanitizing user inputs to prevent attacks requires sophisticated validation logic. Selecting a trusted hosting provider involves evaluating security features and compliance, adding to the complexity. Additional measures like deploying web application firewalls, DDoS protection, and bot management systems require ongoing management.

Maintaining a secure Drupal site is a formidable task that demands technical expertise and a strong commitment to security best practices, highlighting the importance of collaboration with the Drupal community and staying updated on security developments.

Storyblok embeds security at its core by leveraging its SaaS model, which inherently reduces risks associated with traditional CMS systems. Its ISO 27001 certification, verified through regular audits by TÜV Rheinland, demonstrates its commitment to the highest international security standards. Storyblok's architecture limits interactions to API calls, minimizing potential security vulnerabilities. Hosted on Amazon AWS, Storyblok benefits from robust data center security and implements continuous monitoring, strict access controls, and regular code reviews. With a focus on data privacy beyond mere compliance, Storyblok conducts regular internal and third-party vulnerability and penetration tests. Advanced security measures, including web application firewalls, AI-driven threat detection, and a rigorous change management process, ensure service integrity and comprehensive data protection.

Storyblok roadmap: what is ahead?

Well first, they just raised 80M$! It's a significant amount for a highly competitive market, indicating that they are convincing investors of their excellence in execution. This means they will eat a lot of their competition, careful Contentful, a new big fish is in the pool ;-)

Storyblok's roadmap reveals a strategic focus on enhancing usability, scalability, and flexibility in the CMS space. By introducing features like Components Library Versioning and Webhooks for Extensions, Storyblok is improving the developer experience, which in turn makes it easier to build and maintain applications. This approach supports complex projects and positions Storyblok as a developer-friendly platform, attracting developers who seek robust tools. AI-powered translation and Richtext Tables enhance content creation and localization, streamlining management for businesses operating in multiple markets. These tools are crucial for content creators and marketers looking to manage diverse content types efficiently.

Storyblok is also addressing the needs of large organizations with features like the Global Digital Asset Manager and Custom Session Timeout for Enterprise Logins. These capabilities support secure and efficient content management and collaboration, making the platform attractive to enterprise clients. Additionally, Storyblok is focusing on user personalization and inclusivity with features like Space Themes and Accessible Storyblok, which enhance accessibility and satisfaction for a broader audience.

The introduction of Deadline for Workflow Stage and the Option to Lock Stories in Workflow optimizes content workflows, enabling more structured and efficient production processes. This focus on workflow optimization benefits content managers who need streamlined operations. Finally, scalability and integration are supported through features like the Migration Tool for Regions and the Algolia Plugin, allowing businesses to expand and leverage best-in-class tools. 

Overall, Storyblok's roadmap demonstrates a comprehensive strategy that enhances developer tools, content creation, enterprise capabilities, user experience, and scalability, which solidifies its position as a leading headless CMS. These features not only improve current workflows and content strategies but also attract new users seeking a flexible and robust CMS solution.

How to prepare a migration from Drupal to Storyblok?

Step 1: Site content architecture discovery

The first crucial step in any migration is to thoroughly understand your Drupal assets. This involves identifying the sites involved and examining their structures, including sub-domains, redirects, and URL structures. One unique aspect of Drupal is its extensive use of modules, which often provide features beyond content management. 

During this initial phase, you should determine which Drupal modules will be replaced by Storyblok (such as Workflow, i18n, and pathauto) and which will need to be replaced by third-party SaaS solutions. For example, you might replace comments with Disqus or Viafoura, newsletters with Mailchimp, and the Elastic Search module with Algolia. Additionally, custom code may be necessary for features not yet supported by Storyblok. We recommend using Xano as a backend-as-a-service solution for creating these custom features.

By the end of this step, you should have a clear list of all sites, URL rules, and a mapping of the main features to Storyblok, third-party solutions, or custom code.

Step 2: Content structure mapping

The next step is to prepare for the content migration itself. Begin by listing all content types, the number of associated nodes, and all fields with their types. Be aware that you might have custom fields not yet supported by Storyblok. These will need to be adapted either on the front-end side or during the migration phase by transforming Drupal custom fields into a supported Storyblok field type.

Next, identify all tags and taxonomies in Drupal and determine which taxonomies are associated with which content types.

Once you have listed all existing content types and taxonomies to migrate, map them to Storyblok. In Storyblok, everything is treated as a content type, so your categories will also be content types. However, Storyblok provides a tag system, so you will need to decide when to use content types or tags.

We strongly recommend creating a Google Sheet or Airtable document that lists all content types and their fields, including example URLs where you can view the front-end version of each. Add examples of data for each field. Finally, create a migration dataset with a list of 100-200 contents representing a comprehensive view of all possible versions of each content type (e.g., with empty fields, with all fields, one in each category, etc.). This will help your team quickly automate migration script testing.

Step 3:  Front-end blocs, pages, and templates assessment

To create your new front-end, you will need to map out and analyse gaps in your current Drupal templates. This process will likely be time-consuming because it requires a thorough review of every template to determine how you want your new front-end to be structured.

Unlike Drupal, Storyblok offers complete flexibility for designing your front-end. You can customise it entirely according to your needs. The only requirement is to integrate the Storyblok Bridge, which allows you to use Storyblok's Visual Editor.

Here is an example of how we track all the blocs that need to be migrated :

The Storyblok Bridge is a tool that facilitates real-time content editing with the Storyblok headless CMS. By adding a JavaScript script to your website, the bridge connects the CMS with your site, enabling instant updates. As you make edits, the bridge listens for events such as changes or publications, allowing the page to update dynamically without a full reload. This real-time feedback improves efficiency and provides a seamless editing experience, making it an invaluable tool for both developers and content editors.

Step 4: Write, test, and debug your migration scripts

The final step would be to actually write your migration scripts. 

First you'll need to decide how you will export your content from Drupal. The easiest would be to bulk export into files then run your scripts through them. But you can also use Drupal API or (not recommended method) direct SQL queries to Drupal DB.

Exporting content from Drupal can be achieved through various methods tailored to different Drupal versions and content formats. For Drupal 8, the Migrate Module allows exporting content into XML or CSV formats, supporting batch exports and filtering by date or type. The Backup and Migrate Module offers a straightforward way to create site backups, facilitating data transfer to other platforms. 

Content can also be exported to JSON using the core content API or by setting up a custom endpoint. In Drupal 7, the Features Module exports site components like nodes and views, while Drush, a command-line tool, can export data and set up migrations, though it requires coding expertise. 

The Views Data Export Module provides a way to export content to CSV by creating views with filtering options. The Migrate API assists in migrating data between different Drupal versions or platforms but requires advanced programming knowledge. Post-migration optimization using caching and performance tools is recommended for improved website performance. Proper planning and expert assistance are crucial for a successful migration process.

To import content into Storyblok using the Management API, you can leverage its REST-based interface to create, edit, and update content programmatically. The Management API allows for deep integration with the CMS, offering capabilities like importing/exporting CSV files, uploading assets, and handling migrations. For importing, you first need to generate an API Authentication Token from your Storyblok profile, which is used to authenticate your requests. 

You can import content by using a Node.js script that processes CSV files, downloading files from URLs, and uploading them to Storyblok. Configuration settings in the `config.js` file specify details such as the OAuth token, space ID, and file path for import. To import data, ensure the correct values are set in the configuration file, then execute the import command. The Management API supports various use cases such as migration from other CMSs, integration with third-party applications, automation of import/export processes, and management of assets, components, and content spaces. 

It is important to note that the Management API is not optimized for serving content to end users and should not be used for content delivery; for that, the Content Delivery API is recommended. Additionally, content migrations and updates can be managed through the Storyblok CLI, which facilitates tasks such as transforming content fields, updating stories, and handling space schemas. This approach allows for efficient content management, updates, and migrations within Storyblok.

How to organise your content migration, few tips from code.store

Keep track of your migration scripts performance.

When dealing with large amounts of content (hundreds or millions of content pieces), you might need to track how long each migration of each content type takes from start to finish. It is important to be prepared for the final switch of DNS and to plan migrations accordingly.

Here is an example of how we track and estimate the migration of several content types and estimate the total time for a complete migration (57 hours estimated and 51 hours actual time).

Write down a field by field blueprint for your migration

Migration rules may represent a large set of specific and unique requirements. Some fields need to be skipped, concatenated, transformed, or adapted based on other fields. These dependencies can make testing challenging. We suggest documenting all the rules for each field you want to migrate in a spreadsheet. Take a look here:

Final thoughts

Switching from Drupal to Storyblok in 2024 is a smart move for businesses looking for a more modern, flexible, and scalable content management system. While Drupal has been a powerful solution for complex websites over the past decade, its outdated architecture, complexity, and high maintenance costs make it less ideal for today’s fast-paced digital landscape. Storyblok, with its headless architecture and user-friendly visual editor, provides a more agile and efficient alternative that aligns with current trends like decoupled front-ends and composable architectures.

Migrating to Storyblok simplifies content management, reduces infrastructure overhead, and enhances security, thanks to its SaaS model. This allows businesses to focus more on creating and distributing content rather than worrying about technical maintenance.

Though the migration process requires thoughtful planning—especially for complex websites—the long-term benefits of greater flexibility, streamlined workflows, and lower maintenance make it worthwhile. By carefully mapping content and following a structured migration approach, businesses can ensure a smooth transition.

We will be organizing a webinar about Drupal 2 Storyblok migration very soon.

Partager cet article
 
CMS
Contenu
Migration de contenu
Headless
Grandes entreprises
Maxime Topolov
Maxime Topolov
PDG

Vous pouvez également lire

API
Performances
Contenu
SEO
Données
Application pour les consommateurs
Ingénierie logicielle
Sur site
Développement mobile
ERP
E-commerce
Recrutement
Cloud
Migration de contenu
IA
Frontend
CMS
Headless
Backend
Low-code
Applications professionnelles
L'IA conversationnelle
Éducation
Médias et édition
Santé
Services financiers
Grandes entreprises
Start-Up