Drupal 10 builds upon the Drupal 9 but introduces several key changes and improvements. Below are the main differences:
1. Symfony Upgrade
- Drupal 9: Based on Symfony 4, which is now end-of-life.
- Drupal 10: Upgraded to Symfony 6, providing better performance, security, and support for modern PHP development practices.
2. CKEditor Upgrade
- Drupal 9: CKEditor 4 was the default WYSIWYG editor.
- Drupal 10: CKEditor 5 is now the default editor, offering a more modern user experience with enhanced collaboration features, better media handling, and more intuitive controls.
3. Theme Changes
- Drupal 9: Used the Bartik theme as the default front-end theme and Seven as the default admin theme.
- Drupal 10: Introduces a new default front-end theme called Olivero, which is modern, accessible, and mobile-first. The admin theme Claro replaces Seven, offering a cleaner and more accessible experience.
4. Removal of Deprecated Code
- Drupal 9: Included deprecated code from earlier versions, which was required for backward compatibility.
- Drupal 10: Deprecated code has been removed, making the core codebase more streamlined and improving performance. This also means that modules and themes must be compatible with the latest APIs.
5. jQuery and Front-End Dependencies
- Drupal 9: Relied heavily on jQuery and older JavaScript libraries.
- Drupal 10: Reduces reliance on jQuery, adopting modern JavaScript standards to improve performance and minimize dependencies.
6. New Starterkit Theme Generator
- Drupal 9: No native tool for theme generation.
- Drupal 10: Introduces the Starterkit theme generator, allowing developers to create custom themes more easily by providing a starting point that can be modified.
7. JavaScript Modernization
- Drupal 9: Legacy JavaScript approaches (e.g., jQuery-based).
- Drupal 10: Emphasizes modern JavaScript (ES6+), reducing the footprint of legacy scripts and focusing on modern browser APIs for faster performance and easier maintainability.
8. Database and Performance Improvements
- Drupal 10 brings improvements in database handling and overall performance optimization compared to Drupal 9. This includes enhancements in caching, query performance, and rendering speed.
9. Automatic Updates (Experimental in Drupal 9)
- Drupal 9: Automatic updates were experimental but not fully developed.
- Drupal 10: Continuation of efforts to fully implement automatic updates, making it easier to maintain site security by keeping the core and contributed modules up-to-date without manual intervention.
10. PHP Compatibility
- Drupal 9: Supports PHP 7.4 and later.
- Drupal 10: Requires PHP 8.1 or later, leveraging the new features of modern PHP versions for better security and performance.
11. Modules and Deprecated Features
- Drupal 9: Includes several modules that were marked as deprecated (e.g., Quick Edit, Aggregator).
- Drupal 10: Removes deprecated modules and features to maintain a cleaner core, encouraging the use of external libraries or more modern alternatives.