TL;DR
Strapi v4.15.0 introduces several notable features including the Blocks Editor now being marked as stable, system theme synchronization, and a new plugin:watch command. The update also brings UI improvements to the Blocks Editor, fixes for GraphQL blocks fields, and continues the TypeScript migration with numerous components converted. This release enhances developer experience while addressing several bugs in the content manager and blocks editor.
Highlight of the Release
- Blocks Editor is now marked as stable
- System theme synchronization for the admin panel
- New
plugin:watch command for improved plugin development workflow
- Fixed blocks fields not working in GraphQL
- Continued TypeScript migration with many admin components converted
- Enterprise Edition features are now promoted in Community Edition projects by default
Migration Guide
Node.js Version Update
This release drops support for Node.js 16 and updates all static tests to Node.js 20. If you're still using Node.js 16, you should upgrade to a supported version (Node.js 18 or 20) before updating to Strapi v4.15.0.
Package Updates
The Sharp package has been updated to version 0.32.6 in the upload plugin. If you have custom code that depends on specific Sharp functionality, you may need to review the Sharp changelog for any breaking changes.
Design System Update
The Design System has been updated to version 1.13.0. If you're using Design System components directly in your custom code, review the Design System changelog for any breaking changes.
No specific database migrations or configuration changes are required for this update.
Upgrade Recommendations
This release is recommended for all users, especially those who:
- Use the Blocks Editor for content creation, as it's now marked as stable
- Want to benefit from system theme synchronization
- Develop Strapi plugins and would benefit from the new
plugin:watch command
- Use GraphQL with blocks fields
Before upgrading:
- Ensure you're running on Node.js 18 or 20, as Node.js 16 support has been dropped
- Back up your database and project files
- Review the full changelog for any changes that might affect your custom code
The upgrade process follows the standard Strapi update procedure:
- Update your dependencies in package.json
- Run
yarn install or npm install
- Restart your Strapi application
No specific configuration changes are required for this update.
Bug Fixes
Blocks Editor Fixes
- Fixed weird behavior when trying to delete content inside a list, where dropdown options would appear empty
- Fixed an issue that prevented creating images inside a list
- Improved the style of delete and edit buttons inside the Link Popover
Content Manager Fixes
- Fixed action buttons not triggering in the content manager
- Fixed checkbox causing scroll issues in tables
- Fixed advanced settings DatePickers crash when encountering empty strings
GraphQL Fix
- Fixed blocks fields not working properly in GraphQL, ensuring that content created with the Blocks Editor can be properly queried through the GraphQL API
New Features
Blocks Editor Now Stable
The Blocks Editor, which provides a rich content editing experience, is now marked as stable with the addition of a stable release badge. This indicates that the feature is production-ready and fully supported.
System Theme Synchronization
The admin panel now supports synchronizing with your system theme preference. This means the UI will automatically switch between light and dark mode based on your operating system settings, providing a more consistent experience across applications.
New Plugin:Watch Command
A new plugin:watch command has been added to Strapi, allowing developers to watch for changes in their plugins during development. This improves the development workflow by automatically rebuilding plugins when changes are detected.
Enterprise Features Promotion in CE Projects
Enterprise Edition features are now promoted by default in Community Edition projects. This helps users discover premium features that might benefit their projects, with clear indications of which features require an Enterprise Edition license.
Security Updates
No specific security fixes were mentioned in this release.
Performance Improvements
This release doesn't include specific performance improvements highlighted in the changelog. However, the TypeScript conversion of many admin components may indirectly improve performance through better code quality and fewer runtime errors.
Impact Summary
Strapi v4.15.0 brings several important improvements that enhance both developer and content editor experiences. The most significant change is that the Blocks Editor is now marked as stable, indicating it's ready for production use. This is complemented by several bug fixes in the Blocks Editor, improving the content editing experience.
For developers, the new plugin:watch command streamlines plugin development, while the continued TypeScript migration improves code quality and maintainability. The fix for blocks fields in GraphQL ensures that content created with the Blocks Editor can be properly accessed through the API.
The system theme synchronization feature improves the user experience by automatically adapting the admin panel to match the user's system preferences. Additionally, Enterprise Edition features are now promoted in Community Edition projects by default, helping users discover premium features that might benefit their projects.
This release also drops support for Node.js 16, so users still on this version will need to upgrade to Node.js 18 or 20.
Overall, this is a solid feature release that continues Strapi's focus on improving the content editing experience while also enhancing developer tooling.
Full Release Notes
🚀 New feature
💅 Enhancement
- [core:admin] Add: promoting EE features in CE projects by default (#18179) @Mcastres
- [core:admin] [Blocks editor] Fix - Change delete and edit buttons style inside the Link Popover (#18421) @simotae14
- [utils:pack-up] feat(pack-up): add the ability to pass plugins via the config (#18486) @joshuaellis
🔥 Bug fix
- [core:admin] fix(blocks): fix weird behaviour when try to delete content inside a list (dropdown option empty) (#18521) @simotae14
- [core:content-manager] fix: content manager action buttons not triggering and checkbox causing scroll (#18182) @amerikan
- [core:content-type-builder] fix(ctb): advanced settings DatePickers crash with empty string (#18506) @joshuaellis
- [plugin:graphql] fix: blocks fields not working in GraphQL (#18485) @remidej
- [tooling] fix(workflow): re-add build step for linting because it's required (#18489) @joshuaellis
⚙️ Chore
- [core:admin] chore(admin): convert utils to TS (#18452) @gu-stav
- [core:admin] chore(admin): convert layouts to TS (#18456) @gu-stav
- [core:admin] chore(admin): convert GuidedTour to TS (#18461) @joshuaellis
- [core:admin] chore(admin): move and combine various constants into a single TS file (#18472) @gu-stav
- [core:admin] refactor(admin): convert rest of components to TS (#18473) @joshuaellis
- [core:admin] chore(admin): convert ApiTokenPermissions to TS (#18476) @gu-stav
- [core:admin] chore(admin): convert UseCasePage to TS (#18477) @gu-stav
- [core:admin] chore(admin): convert InternalErrorPage to TS (#18478) @gu-stav
- [core:admin] chore(admin): convert NotFoundPage to TS (#18482) @gu-stav
- [core:admin] chore(admin): move LanguageProvider mock file to TS (#18533) @gu-stav
- [core:admin] chore(admin): convert useContentTypes to TS (#18536) @gu-stav
- [dependencies] chore(plugin-upload) - update sharp to 0.32.6 (#18480) @vojthor
- [dependencies] chore(deps): update design-system to 1.13.0 (#18538) @remidej
- [tooling] Run
nx repair to correct nx configuration (#18446) @smorimoto
📚 Update and Migration Guides
- General update guide can be found here
- Migration guides can be found here 📚