Home / Blog posts

Best Strapi Plugins Vol 1. - Most popular Plugins | Notum Switzerland Agency

strapi marketplace
Plugin Architecture Overview

Strapi's plugin architecture is a cornerstone of its extensibility, allowing developers to enhance the core functionality of their applications.

Plugins in Strapi can be categorized into built-in, third-party, and custom-developed options. The platform provides a robust API for plugin development, enabling the creation of both server-side and admin panel features through entry point files like strapi-server.js and strapi-admin.js.

Developers can leverage the Strapi CLI to generate new plugins, choosing between JavaScript and TypeScript implementations. While plugins offer significant customization capabilities, they also present challenges such as potential compatibility issues with Strapi updates and a learning curve for newcomers to the ecosystem.

The Strapi Marketplace serves as a central hub for discovering and integrating third-party plugins, further expanding the platform's capabilities.

seo plugin
Official SEO Plugin

The official Strapi SEO plugin offers a comprehensive solution for making Strapi content SEO-friendly. It automatically creates a shared.seo component upon first use, allowing users to quickly add SEO components to selected content types. The plugin provides a dedicated right-side card in the content manager view, offering quick SEO analysis and actions such as previewing SERP and social posts.

To install, developers can use npm or yarn to add the plugin as a dependency. Configuration requires enabling the plugin in the ./config/plugins.js file and rebuilding the admin panel.

The SEO plugin also allows importing custom shared.seo and shared.meta-social components from GitHub repositories, offering flexibility for tailored SEO implementations.

CK editor
CKEditor 5 Integration

The @_sh/strapi-plugin-ckeditor is an unofficial integration that replaces Strapi's default WYSIWYG editor with a customized build of CKEditor 5, offering enhanced functionality for content creation. This plugin integrates CKEditor 5 as a fully customizable custom field, providing features such as font color picking, fullscreen mode, and Strapi media library integration.

Installation is straightforward using npm or yarn, followed by a build process. The plugin utilizes Strapi's custom fields API and CKEditor's DLL build, with configuration options defined in a ckeditor.txt file. For developers seeking to contribute or modify the plugin, a detailed setup process involving cloning the repository and configuring the Strapi environment is provided.

It's worth noting that while this plugin offers extensive customization, an official CKEditor 5 integration is also available, which may be preferable for some users depending on their specific needs and support requirements.

settings sync
Config Sync Utility

The strapi-plugin-config-sync is a powerful tool designed to manage Strapi database records through JSON files, primarily used for version-controlling configuration data across different environments. Developed by Boaz Poolman, this plugin addresses the challenge of sharing config data in large-scale Strapi projects with multiple developers and environments.

It offers both CLI and GUI interfaces for syncing configurations, allowing developers to export data on one environment and import it on another. The plugin supports partial syncing, custom collection types, and automated deployment through the importOnBootstrap feature.

Installation is straightforward using npm or yarn, with additional setup required in the config/admin.js file to prevent unnecessary reloads during development.

The config-sync plugin enhances collaboration, facilitates automated testing, and ensures consistency across different Strapi environments, making it a valuable tool for managing complex Strapi deployments

color picker
Color Picker Plugin

The @strapi/plugin-color-picker is an official Strapi-maintained custom field that enhances content management by providing a user-friendly color selection interface.

This plugin allows users to utilize saturation and hue sliders to choose colors, saving the selected values as HEX strings.

Installation is straightforward, requiring the addition of an NPM dependency to the Strapi application using either Yarn or NPM, followed by rebuilding the admin panel.

While the plugin offers a valuable feature for color-based content, some users have reported issues with its functionality after upgrading to Strapi version 4.13.6, indicating potential compatibility challenges that developers should be aware of when integrating this plugin into their projects.

multiselect
Multi-Select Field Plugin

The strapi-plugin-multi-select is a custom field plugin for Strapi that enables users to select multiple options from a predefined list. This plugin addresses a common need in content management systems for handling multi-value fields. Installation is straightforward using npm or yarn, followed by rebuilding the admin panel.

The plugin supports both simple options and key-value pairs, allowing for flexible configuration. Options can be added as a line-separated list, with the ability to specify labels and values using a colon separator (e.g., label:value).

When implemented, the API returns the selected options as an array, facilitating easy integration with front-end applications.

While this plugin offers a solution to the multi-select functionality, some users have reported compatibility issues with certain Strapi versions, highlighting the importance of version checking before implementation

REST Cache plugin
REST Cache Performance Boost

The strapi-plugin-rest-cache is a performance-enhancing plugin for Strapi that implements HTTP request caching to significantly improve response times. It utilizes an LRU (Least Recently Used) cache strategy to store and serve frequently accessed data, potentially reducing response times to as low as 1ms.

The plugin supports multiple cache storage providers, including in-memory, Redis, and Couchbase, offering flexibility for different deployment scenarios. Cache invalidation is automatically handled when related Content-Types are updated, ensuring data freshness.

While still in alpha stage, the plugin is actively seeking contributors to help with development and maintenance. Implementation requires careful configuration, including setting up content types to be cached and choosing an appropriate storage provider.

It's worth noting that some users have reported challenges in getting requests cached, indicating potential setup complexities that developers should be prepared to troubleshoot

preview
Preview Button

The strapi-plugin-preview-button enhances Strapi's content management interface by adding preview and live view buttons to the edit view. This plugin allows content creators to visualize their work before publishing, improving workflow efficiency. It supports customization for specific content types and can be configured to handle both draft and published states.

The plugin requires environment variables for preview secrets and URLs, enabling secure integration with frontend applications. Installation is straightforward using npm or yarn, followed by configuration in the Strapi project's plugin settings.

While the plugin offers valuable functionality, users should be aware of potential compatibility issues with certain Strapi versions, as reported by some developers.

The preview button's implementation can be tailored to work with various frontend frameworks, with specific documentation available for Next.js integration.

Component preview
Component Preview Visualization

The strapi-plugin-component-preview enhances Strapi's content management capabilities by providing a live preview of components through a custom field. This plugin allows developers to visualize components in real-time, facilitating easier understanding and implementation. It supports Strapi versions 4.4 and above, leveraging the custom fields API.

Installation is straightforward using npm, and configuration requires specifying the STRAPI_ADMIN_BACKEND_URL in the project's .env file. While the plugin offers valuable functionality for component visualization, it's important to note that images displayed in the preview are not saved to the database, which may impact certain workflows.

This tool can significantly improve the content creation process by offering immediate visual feedback on component structures and layouts.

scheduled content
Scheduled Content Publishing

The strapi-plugin-publisher is a powerful extension for Strapi that enables content scheduling and management across various content types. This plugin allows users to easily schedule the publishing and unpublishing of content, enhancing workflow efficiency for content creators and managers.

Installation is straightforward using npm or yarn, followed by configuration in the ./config/plugins.js file. The plugin offers customizable settings, including cron-based sync frequency and hooks for pre and post-publishing actions. It supports all content types by default but can be configured to target specific ones.

The plugin also provides a flexible DateTimePicker component for setting action times, with customizable step intervals and locale options. For developers, the plugin exposes hooks that can be used to implement custom logic before and after publishing or unpublishing content, allowing for advanced integrations and automated workflows.

sitemap strapi
Sitemap XML Generation

The strapi-plugin-sitemap is a powerful tool for generating highly customizable XML sitemaps in Strapi CMS, enhancing SEO capabilities for websites built with Strapi. This plugin offers two primary methods for adding URLs to the sitemap: URL bundles and Custom URLs.

URL bundles allow for dynamic URL generation using patterns, while Custom URLs enable the addition of static routes not managed by Strapi.

The sitemap includes essential XML attributes such as , , , and for URL bundles, with Custom URLs omitting the `` attribute. Installation is straightforward using npm or yarn, followed by a rebuild of the admin UI.

The plugin also provides a CLI tool for sitemap generation, which can be integrated into project scripts for automated updates. For optimal SEO performance, it's recommended to add the sitemap URL to the robots.txt file and consider implementing a cron job or lifecycle method to keep the sitemap up-to-date.

notum strapi v4 content versioning plugin
Content Versioning

Notum's Content Versioning Plugin stands out as a significant contribution to the Strapi ecosystem. This plugin addresses a critical need in content management by allowing multiple versions of the same entity and enabling time-travel between updates. It works seamlessly with Strapi's internationalization feature, displaying versions specific to the selected language.

The plugin utilizes a unique versioning identifier generated by the uuid library and creates links to relevant locales. It stores entities in the same database table but assigns them distinct versioning identifiers. While the plugin offers powerful versioning capabilities, it does have some limitations, such as not supporting unique fields and relations inside components.

Notum actively maintains this plugin to ensure compatibility with the latest Strapi features and versions. With its ability to manage multiple draft versions and track updates across various content types and translations, the Content Versioning Plugin has become one of Notum's most popular contributions, approaching 10,000 monthly downloads.

This plugin exemplifies how custom development can address specific needs within the Strapi community while fostering open-source collaboration.

Notum Strapi blog plugins
Notum's Plugin Expertise

Notum Technologies, an official Strapi implementation partner based in the Czech Republic, has developed and open-sourced three notable Strapi plugins: content-versioning, record-locking, and location. These plugins address specific needs encountered in commercial projects, demonstrating Strapi's extensibility.

The content-versioning plugin, their most popular with nearly 10,000 monthly downloads, allows multiple draft versions of entities and time-travel between updates. The record-locking plugin prevents data loss from concurrent editing, while the location plugin leverages PostGIS for geospatial queries.

Notum's experience highlights the potential for creating custom Strapi plugins to solve unique challenges. They encourage the Strapi community to contribute to plugin development, emphasizing that even commercial projects can yield valuable open-source contributions. For those interested in custom Strapi development or plugin creation, Notum offers expertise and consultation services.

About Us

We're Notum Technologies:

✔️ Official STRAPI agency in Europe and America, based in the Czech Republic.

✔️ We offer custom STRAPI development, consultations, web, and mobile apps.

✔️ With 40+ completed STRAPI projects, many workshops, open communication, and great project management, we have the tools to make your project a success.

Got a project?
Jiri Mouka photo

Jiri Mouka | Founder

+41 076 629 91 78

sales@notum-tech.ch