We are live on Product Hunt! Feel free to leave us a review 🙏
Last year, we introduced a stable Strapi v3 with the role-based access control, draft and publish feature, SSO authentication, and most awaited internationalization. We reached 40 000+ Github stars. We held the first online global user conference StrapiConf, with more than 2,500 live attendees.
Most importantly, the Strapi community keeps growing in size and level of engagement. Thank you for every contribution, feedback, little gesture of help, and for building Strapi with us.
Since the release of the first version, we have been carefully listening to your feedback about the limitations you faced while using Strapi. Contributions were not smooth, migration from one version to another wasn't the best, plugins were sometimes hard to maintain, the API performance, format, and capabilities could be better.
But not anymore.
We have deeply reworked the Strapi core to make it easier to extend Strapi with plugins, smoothly migrate from one version to another, and boost API performance. All that with a brand new user interface and design system.
Strapi v4 allows everyone to easily extend Strapi through plugins and customize the admin panel as needed. The new version will also increase the velocity of new feature development by our team, which means we’ll be shipping updates more frequently.
Here’s what Kuldeep Arora, Principal Delivery Lead at Virgin Media, said about the new version: "Strapi v4 not only boosts performance compared to the previous version but also makes the process of integrating other tools in our stack a breeze”.
Intrigued? Let's have a look at what's new.
More intuitive, more accessible, more aesthetic. We gave Strapi a complete makeover, improved the navigation and accessibility of the admin panel to make sure that it not only pleases the eye but also makes users more efficient.
Along with the updated admin panel interface, we are releasing the first version of the Strapi Design System.
Our goal is to allow everyone to extend and customize their Strapi applications with plugins. To ensure design consistency and provide the best experience to Strapi users, we created a component library that plugin developers can use for the interface of their plugin.
We took the time to select the right colors, pay attention to the contrast ratio, create elements with adaptive size and make sure all pieces of the Strapi interface were consistent. This way, no matter what plugins are added to an application, users will always have a pleasant experience, and nothing will interfere with their productivity and creativity.
We have also created a Strapi UI Kit available on Figma: just duplicate the file and get started with the design!
Have a look at what's new:
Our vision is to enable everyone to extend their Strapi application, customize and integrate it with other tools. We want to scale the Strapi ecosystem to let users choose among a big variety of high-quality plugins and to let plugin creators showcase their work. To achieve it, in the v4 we are making the plugin creation and use as smooth as possible.
The new Plugin API lets developers create plugins without pain. In Strapi v3, plugins were loaded based on a file structure. To create a plugin, one would need to configure many files. This approach didn't provide code flexibility and made it difficult to maintain the plugin.
In the v4, we've moved to a programmatic approach, which means that plugins can have their own file structure. Plugin developers only need to configure two files at the root of the package:
strapi-server.js
for the Server
.
strapi-admin.js
for the Admin panel
.
In addition, they can use the components provided by the Strapi Design System to build the admin panel interface of their plugins effortlessly. This way, developers don't need to spend time on creating the plugin UI and focus only on feature development. These improvements make the plugin creation experience smoother and enable plugin developers to share their work with others, collaborate, and contribute more efficiently.
Strapi users will extend their applications by using the plugins created by other enthusiasts, saving days of work in the process.
This is the foundation for a healthy ecosystem, and we can't wait to work with you on extending Strapi's capabilities and integrations with other tools.
Here are more details about the new Plugin API:
The v3 plugins will not be compatible with the v4 and must be migrated. We have prepared a detailed tutorial on migrating v3 plugins to v4. Naturally, the plugins created for the v4 will not be compatible with older Strapi versions.
If you have already created or migrated a v4 plugin, please share it with Strapi Marketplace.
This significant improvement allows developers to interact with the database efficiently, have more control of the data, fetch it more innovatively, and custom code more efficiently.
We have improved the way queries to the database are done: you can now select which fields and relations you will load from the database, make complex queries on components, and filter and sort data like a pro. We have also added the OR, AND & NOT operators and filtering on components. It means that you will get only the data you need instead of ALL data, which improves your project's performance.
With this database layer, developing new features is so much easier. The syntax used for this query system is intuitive and understandable, inspired by the ecosystem's best tools. To customize Strapi, you will not need to spend time learning overcomplicated systems.
With the new database query engine, we will also be able to ship features faster, such as the awaited versioning, preview, activity logs, better cross-environment migration, and more (by the way, let us know what features you'd love to see in the next versions!)
Look at more details about the new query engine and the database layer.
Also, check out this short video explaining the new query engine:
With a new database query engine under the hood, the REST and GraphQL API are also becoming more advanced.
Get the precise data you need through the API with the updated population and filtering systems and the possibility to load relations from the database. Since you can decide precisely what data to fetch via the API, it gives more space for creativity in front-end development. Focus on imagination and design without worrying about the backend constraints. The API will do all the job!
We added pagination to both APIs and standardized the request and response formats to ensure a more consistent experience. The split of attributes and meta allows you to expand and customize API.
We have added new features to the content API, such as pagination, better filtering format, and the possibility to choose what relations to load.
Have a look at the REST API and GraphQL API documentation for more detail.
Check out the overview video to see the new API in action:
In v4, we're introducing an essential change in the API: the Content API and the Admin API are now separated, and the access to the Content API can be easily managed using the API Tokens.
The Content API users can now authenticate their queries (REST & GraphQL) with a token (Access key) administered from the admin panel. The tokens can be created in the settings of the app. They are permanent and can only be seen once when the admin creates them.
Super admins can set up specific permissions to grant access to the API token settings section and CRUD actions on tokens. This feature lets Strapi users manage the permissions of the Content API requests more smoothly. It also allows you to get started with Strapi faster with simple settings.
Have a look at the API Token feature demo:
We have standardized the error codes and added a meaning for each one of them. From now on, whenever you receive an error you’ll know what exactly it means and how to deal with it. Learn more about error handling here.
We organised a festive edition of our monthly community call to celebrate this huge milestone together! We did the v4 to show what's new, answered all questions and took a moment to thank everyone for helping us in this journey.
Here's the replay of the v4 edition Community Call:
To unite local Strapi communities, we will also be organizing v4 release parties in different cities around the world. A v4 Release party is a 1-2 hour get-together to meet other Open Source developers interested in learning more about the superpowers that come with Strapi v4.
To create a new Strapi v4 project, simply run the following command:
nnpx create-strapi-app@latest <my-project> --quickstart
Follow the Quick Start Guide for detailed step-by-step instructions or have a look at a video instruction:
Strapi v4 introduces many breaking changes, and we would love to hear your thoughts! Please share your feedback in this forum thread and report any bugs you face on Github.
We will keep supporting v3 and fixing critical bugs for at least six months. However, we will stop delivering new features for v3, and we encourage you to use v4 for all new projects. The v3 documentation will still be available here.
The migration guide that will help you migrate from v3 to v4 is currently in progress, and we will share it once it's ready.
Strapi is an open-source product that grows thanks to community support and contributions.
Here's how you can help us improve the product:
We appreciate each contribution and piece of feedback that you share. Stay tuned for more updates!
Alex is passionnate about science and engineering. He also really like cooking and baking. He is lways eager to learn new things and especially about space. If you need some help with a Rubik's cube send him a message on Twitter: @_alexandrebodin