Best Practices for Onboarding Content Managers to Your Strapi CMS
Tags: headlesscms, strapi, javascript
Published: 2022-11-03 14:20:21

**Author: Quentin Sinig**

This article is for Content Managers who may know Strapi already or not. It also aims to guide the development team to succeed in the implementation and efficiently conduct the change management to move from another CMS to Strapi. 

## Adopting a Headless CMS Editing Style Requires Change Management
A headless CMS provides many benefits for business users. However, this comes with one limitation: you need a developer's assistance to connect your content with a front-end. As a technically-educated person but not a developer, I can testify that Strapi isn’t the best choice for simple projects and that no-code applications like [softr.io](http://softr.io) are better equipped for a few use cases. When you’re managing campaigns like the [marketing campaigns at Toyota](https://www.youtube.com/watch?v=FE13W772MHw), you have extended requirements, and it makes sense to change your content editing style to move to a modern content management flow.

But what does it mean to change your content editing style? In a nutshell:

- Leave behind the drap-and-drop style.
- Let go of the pre-defined templates.
- Don’t try to organize everything in a folder.
- Stop relying on your developers for publishing operations.
- Work in production, not in staging.


![](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251114508_giphy.gif)

These are the exact reflectionsof the legacy CMSs like WordPress or Drupal that have built their user experience, not adapted anymore to the way multi and omnichannel publications now require. As a result, by using tags and properties instead, you’ll gain the freedom to view and organize your content according to your way of thinking.

Following the best practices below, you can expect a more efficient flow to publish new content (**4 clicks only are required**) and a refined dashboard with the key features that you need.

## Best Practices to Onboard Content Managers on Strapi

### Onboarding Experience

First of all, let’s start with the onboarding process. As a new user, using a new tool is ok but adopting it and enjoying it at the point where you become an ambassador requires more than a friendly UI. It starts with the first page when you log in. Did you know that you could switch it to [dark mode](https://strapi.io/blog/strapi-dark-mode) if that’s your preference?

![Strapi Dark Mode Screenshot](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251208587_Untitled+3.png)

Ok, now you’re set! Instead of being left alone and discovering the admin panel by yourself, there are two options for a nice onboarding experience:

- [**A Guided Tour Plugin:**](https://strapi.io/blog/create-a-guided-tour-plugin-using-reactour) Helps you to guide your users step-by-step to create their first pieces of content.
- **A Custom Homepage with Internal Training Resources:** By default, Strapi comes with links to the Documentation, Tutorials, Blog posts, etc. Suppose you’re building internal training (as the Strapi Academy is currently off). In that case, it can be easily achieved by modifying the codebase, as long as you do not add brand-new paragraphs and only update the existing components.

That can be easily achieved by modifying the codebase as long as you do not add brand-new paragraphs and only update the existing components. And instead of forking it into a private repository, you can leverage [patch-package](https://www.npmjs.com/package/patch-package) *(please read the* [*READ.ME file from patch-package*](https://github.com/ds300/patch-package#readme) *that explains the benefits of patching over forking and when to fork instead)*

![Strapi Welcome Page](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251243724_Capture+decran+2021-12-10+a+11.29.29.png)

> 💡 **A little history here:**
Strapi v3 used to have an “[extension](https://docs-v3.strapi.io/developer-docs/latest/development/plugin-customization.html)” system that the Strapi Team (*almost*) completely removed while building Strapi v4 because it was not maintainable over time, not for them, nor for the users. It generates too many bug reports and could cause issues. As a result, by default, packages like the Admin UI are no longer customizable natively.

### Ideal Content Editing Flow

Now you’re surely eager to create and publish your first piece of content! The ideal flow for content editing should be a 4-steps-flow:


1. **Build pages by picking-up components through the [dynamic zone](https://docs.strapi.io/user-docs/latest/content-manager/writing-content.html#dynamic-zones).**

![Dynamic zone](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251295788_Untitled.png)

2. **Fill components with your content: text, videos, pictures…**
![Components](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251331668_Untitled+1.png)


> 💡 **Tips:**
You can also add a placeholder to guide your user during the creation process.

![Placeholder](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251342385_content+manager+placeholder.png)

3. [**Preview**](https://market.strapi.io/plugins/strapi-plugin-preview-button) **your work and save & review.** 
![Preview](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251389095_injection+zone+preview+1.png)

4. **Publish your content: it’s live!**
Do you remember that I told you earlier to drop off templates? Dynamic zone is the substitute. And “***dynamic***” is a compelling concept, in opposition to templates that are assimilated to a static approach. Think of it as a library of lego where you can pick up the different bricks (different sizes, different colors, etc.) to build your masterpiece the way you want. Well, modern content editing is the same. By having the liberty of choosing the components (like a hero, a banner, a card) that you need to assemble your page, you don’t have to ask your developer each time you need something.

> 💡 **Tips:**
Instead of creating all your components from scratch, you can pick up examples directly from the [strapi.io website](https://github.com/strapi/community-content/tree/master/website-components) and the [official FoodAdvisor Demo](https://github.com/strapi/foodadvisor/tree/master/client/components).

### Collaboration & Productivity Hacks

Finally, the more time you spend on your dashboard, the more value you can get from it. Here are the three extensions I would recommend for an enhanced collaborative experience that fits each persona in your Content Team.

- [Replace the default Strapi WYSIWYG](https://market.strapi.io/plugins/@_sh-strapi-plugin-ckeditor): as a content writer, I have access to a rich text editor for an easier layout.
- [Add an SEO manager](https://market.strapi.io/plugins/@strapi-plugin-seo): as a marketer, I have built-in SEO analysis (tag management, SERP preview…) to improve my content web performance.
- [Add an embedded calendar](https://market.strapi.io/plugins/@offset-dev-strapi-calendar): as a marketer, you’ll be able to visualize your campaigns directly in Strapi.
- [Add a content scheduler](https://market.strapi.io/plugins/@webbio-strapi-plugin-scheduler): as a content publisher, you can define when an article is ready and easily manage content obsolescence.

## Conclusion
Many more hacks exist, like [the duplicate button](https://market.strapi.io/plugins/strapi-plugin-duplicate-button) to save an additional click in the UX, [a to-do-list](https://market.strapi.io/plugins/strapi-plugin-todo) to track what remains to be done on articles, or the possibility of turning your dashboard into an internal forum space with a [commenting](https://market.strapi.io/plugins/strapi-plugin-comments) [system](https://market.strapi.io/plugins/strapi-plugin-comments). But do not forget that **“if it ain't broke, don't fix it”.**

So if you’re a developer and you hear *“Oh, I saw this plugin. Can you please, install it? That would so useful!”* I strongly advise you to adopt the same posture as a product manager to evaluate the inquiry, and more precisely:

- How many users will be impacted?
- How many times will this feature be used on a daily basis?
- How much time would be saved?

From experience, very few companies audit their usage, but most are convinced they’re only using a maximum of 20% of the capability of their CMS or DXP. As Strapi is designed to be delivered as a light-weighted application and you decide to add the features you need, it’s a real opportunity to clean up your stack! I mean, who would need a Ferrari to drive on a countryside road?

![meme](https://paper-attachments.dropboxusercontent.com/s_0C8A7F981784ACEF38DB8E79266B6118BD86E0DA035F3C66D6413BFD3CB5EB45_1666251603359_tumblr_mxm63mz5ZI1qzh4avo1_400.gif)