TL;DR
Strapi v3.0.0-alpha.5.3 introduces a complete rewrite of the core framework, a redesigned admin panel, and the new Settings Manager plugin. This release focuses on performance improvements, better configuration structure, and enhanced developer experience. It's a significant update that requires Node v8 and npm >= 5.3.0.
Highlight of the Release
- Complete rewrite of the core framework layer for better performance and contribution
- Brand new admin panel design with Bootstrap v4 alpha.6
- New Settings Manager plugin included in all new projects
- Harmonized API across all connectors (Bookshelf, Mongoose, Redis)
- Improved configuration structure for better developer experience
- Fast logging implementation with pino
- Internationalization support for notification messages
Migration Guide
Upgrading to v3.0.0-alpha.5.3
Prerequisites
- Node.js: This version is only compatible with Node v8
- npm: Version 5.3.0 or higher is required
Configuration Structure Changes
The configuration structure has been significantly improved. You'll need to update your existing configurations to match the new format:
- Review the new configuration files structure in a fresh Strapi installation
- Pay special attention to database configuration changes, especially if using custom connectors
- Update your model configurations to use the new format with the
enabled key
Connector API Changes
If you were using custom code that interacted directly with connectors (Bookshelf, Mongoose, Redis), note that their APIs have been harmonized:
- Review your connector-specific code
- Update to use the new unified API approach
- Test database operations thoroughly after migration
Plugin System
The plugin system has undergone significant changes:
- Install the new Settings Manager plugin if upgrading an existing project
- Review any custom plugins for compatibility with the new core framework
- Update plugin translations to use the new i18n system with prefixed keys
Custom Hooks and Middlewares
The way custom hooks and middlewares are loaded has changed:
- Ensure your custom hooks include the
enabled key
- Review middleware configurations, especially if using security middleware which has been split
Upgrade Recommendations
For Development Environments
We strongly recommend upgrading to this version for development environments to benefit from the performance improvements and new features. The rewritten core framework and improved configuration structure will provide a better development experience.
For Production Environments
As this is still an alpha release (v3.0.0-alpha.5.3), we do not recommend using it in production environments unless you thoroughly test your application. The breaking changes in the core framework may require significant adjustments to existing applications.
Upgrade Steps
- Ensure you have Node v8 and npm >= 5.3.0 installed
- Back up your existing project
- Update your Strapi dependencies to v3.0.0-alpha.5.3
- Run
npm install to update all dependencies
- Review and update your configurations according to the migration guide
- Test thoroughly before deploying to production
Bug Fixes
Database Management Fixes
- Fixed database connection issues and improved error handling for MongoDB connections
- Fixed "database already exists" error handling
- Resolved issues with setting default database connections
- Fixed nested object request model handling
UI and Design Fixes
- Fixed CSS styling on input elements
- Fixed EditForm buttonContainer alignment
- Fixed modal centering and styling
- Corrected PluginLeftMenu design and active link indicators
- Fixed language display and default language selection
System Fixes
- Fixed silent fail log files
- Resolved issues with custom responses
- Fixed force 404 handling
- Added proper error handling with try/catch for filesystem functions
- Fixed startup issues related to hooks and middleware loading
New Features
Admin Panel Redesign
The admin panel has been completely redesigned with a fresh new look using Bootstrap v4 alpha.6. The new design includes improved navigation with a better left menu system, enhanced modal designs, and a more consistent UI throughout the application.
Settings Manager Plugin
Every new Strapi project now comes with the Settings Manager plugin pre-installed. This plugin provides a user-friendly interface for managing:
- Database configurations with support for multiple connections
- Language settings with flag visualization
- Advanced configuration options
Enhanced i18n Support
Notification messages now support internationalization, making the admin interface more accessible to non-English speaking users. The translation system has been improved with better key prefixing and organization.
Fast Logger Implementation
Strapi now uses pino for logging, which provides significant performance improvements over previous logging solutions. This change contributes to the overall performance enhancements in this release.
Improved Left Menu System
The admin panel's left menu has been enhanced with better styling, improved active link indicators, and a more intuitive navigation experience.
Security Updates
No specific security fixes were mentioned in the release notes. However, the overall framework rewrite and dependency updates likely include security improvements as part of the general codebase modernization.
Performance Improvements
Core Framework Rewrite
The core framework layer has been completely rewritten from scratch, resulting in:
- Faster boot times
- Improved overall application performance
- Better memory management
Optimized Startup Workflow
- Reduced warnings during startup
- Improved dependency loading process
- Better handling of plugin initialization
Enhanced File Serving
- Improved static file serving using router
- Better handling of public assets in subfolders
Dependency Optimization
- Removed unnecessary dependencies
- Updated and optimized existing dependencies
- Improved package structure for faster loading
Improved Build Process
- Better symlink handling for development
- Optimized plugin installation process
- Faster generation of new projects
Impact Summary
This release represents a significant milestone in Strapi's development with a complete rewrite of the core framework. The focus on performance, developer experience, and UI improvements makes this a substantial update that lays the groundwork for future stability.
The new Settings Manager plugin greatly enhances the configuration experience, allowing developers and administrators to manage database connections, language settings, and other configurations through an intuitive interface rather than editing files manually.
The harmonization of connector APIs (Bookshelf, Mongoose, Redis) creates a more consistent development experience regardless of the database technology being used. This, combined with the improved configuration structure, makes Strapi more approachable for new developers while providing the flexibility experienced developers need.
The UI redesign with Bootstrap v4 alpha.6 modernizes the admin interface and improves usability across the board. The implementation of i18n for notifications is a step toward making Strapi more accessible to a global audience.
While the breaking changes require careful migration planning, the performance improvements and new features justify the effort for most projects. The requirement for Node v8 and npm >= 5.3.0 ensures that Strapi can take advantage of modern JavaScript features and package management capabilities.
Full Release Notes
💥 Breaking changes
- Core framework layer has been rewritten from scratch to encourage contribution, faster boot and performances.
- Configurations structure has been improved to be more understandable.
🚀 New features
- Admin panel comes with a brand new design.
- Plugin
Settings Manager is available on every new project.
- Fast logger (pino).
- Use Bootstrap [email protected].
- i18n has been implemented in the notifications messages.
💅 Enhancement
- Connectors (strapi-bookshelf, strapi-mongoose, strapi-redis) has been harmonized to use the same API.
- Improve startup workflow to avoid warnings.
- Update dependencies.
- Remove old/deprecated folders (test, website).
This version is only compatible with Node v8 and npm >= 5.3.0