TL;DR
Ghost v5.110.0 brings Node 22 support, fixes subscription attribution issues in emails, and adds new translations. The release includes important bug fixes for member attribution tracking and enhances the ActivityPub interface with dark mode support and UI improvements. Docker development setup has been significantly improved for better performance and developer experience.
Highlight of the Release
- Added support for Node 22
- Fixed subscription attribution issues in member emails
- Improved Docker development setup for better performance
- Added dark mode support to ActivityPub
- Enhanced CTA card responsive styles and design
Migration Guide
Node 22 Support
If you're upgrading to Node 22, ensure that all your custom themes and integrations are compatible with this version. Most code should work without changes, but it's recommended to test thoroughly before upgrading in production.
Docker Development Setup
If you're using the Docker development setup, you can take advantage of the new improvements:
-
Copy the new .env.example file to .env to enable the ghost profile:
cp .env.example .env
-
Use the new Docker commands:
yarn docker:dev # Start Ghost in Docker with force recreate
-
For Stripe webhook forwarding, set your Stripe API key in the environment:
STRIPE_SECRET_KEY=sk_test_your_key_here
No database migrations or other special steps are required for this release.
Upgrade Recommendations
This release is recommended for all Ghost users, especially for:
- Developers who want to use Node 22 or improve their Docker development workflow
- Site owners who have experienced issues with subscription attribution in emails
- Anyone using or planning to use ActivityPub features
The upgrade process should be straightforward with no breaking changes. As always, it's recommended to:
- Back up your database before upgrading
- Test the upgrade in a staging environment if possible
- Follow the standard Ghost upgrade process
This release contains important bug fixes and enhancements but no critical security patches, so upgrading can be done during your regular maintenance schedule.
Bug Fixes
Subscription Attribution Fixes
- Fixed an issue where subscription attribution was sometimes missing from
SubscriptionCreatedEvent
- Resolved race conditions with the way events are emitted and handled around member creation and subscription activation
- Fixed missing attribution in new member and new subscription staff emails
CTA Card Frontend Rendering
- Fixed responsive styles for CTA card frontend rendering
- The minimal layout version now changes to a column layout on mobile
- The sponsor label color now inherits the theme color for better compatibility with different backgrounds
- Adjusted spacing for mobile displays
ActivityPub UI Fixes
- Fixed dark mode in ActivityPub article view so it no longer requires a page refresh
- Added dark mode support to the table of contents
- Fixed various visual design inconsistencies
New Features
Node 22 Support
Ghost now officially supports Node 22, which is the latest LTS version. This ensures compatibility with modern Node.js environments and allows developers to take advantage of the latest performance improvements and features in Node.js.
ActivityPub UI Improvements
The ActivityPub interface has received significant updates:
- Added dark mode support
- Restructured UI with a new header and right sidebar for better navigation
- Improved profile view design for better coherence with the overall design
- Enhanced typography and responsive design
Docker Development Enhancements
The Docker development setup has been significantly improved:
- Better performance through optimized volume handling
- Reduced Docker image size by approximately 100MB
- Simplified configuration with a new
.env.example file
- SSH agent forwarding for better Git operations within containers
- Improved Stripe webhook handling in development
Security Updates
No significant security fixes were included in this release.
Performance Improvements
Docker Development Performance
- Significantly improved Docker development setup performance by optimizing volume mounts
- Enumerated
node_modules directories as volume exclusions for the bind mount to reduce file system overhead
- Optimized Docker build process by enumerating all
package.json files for better caching
- Reduced the size of the development Docker image by approximately 100MB
Test Framework Optimizations
- Removed Stripe API throttling in test environment, reducing E2E test time by approximately 20%
- Replaced real-world waits in tests with sinon for faster test execution
- Switched
prepareContentFolder in legacy E2E utils to async-await for better performance
- Ensured only one XMLRPC handler and one Stripe settings handler are listening to avoid duplicate event handlers
Impact Summary
Ghost v5.110.0 is a feature-rich update that brings important compatibility improvements with Node 22 support, fixes critical subscription attribution issues, and enhances the developer experience with significant Docker development improvements.
The subscription attribution fixes are particularly important for sites that rely on accurate tracking of where members and subscribers are coming from, ensuring that staff emails contain the correct attribution information.
For developers, the Docker development enhancements provide a much smoother experience with better performance, simplified configuration, and reduced image size. The support for Node 22 ensures Ghost remains compatible with the latest LTS version of Node.js.
The ActivityPub interface has received significant UI improvements including dark mode support, better navigation, and enhanced responsive design, making it more user-friendly and visually consistent.
Additional improvements include better CTA card responsive styles, updated translations, and various performance optimizations in the test framework. Overall, this release focuses on enhancing compatibility, fixing bugs, and improving the developer and user experience.
Full Release Notes
- ✨ Added support for Node 22 - Daniel Lockyer
- 🐛 Fixed missing attribution in new member and new subscription staff emails (#22252) - Steve Larson
- 🐛 Fixed subscription attribution sometimes missing from
SubscriptionCreatedEvent (#22219) - Steve Larson
- 🌐 Updated Slovak translations (#21800) - Techkrypt-xyz
- 🌐 Added missing Russian translations (#22186) - Paul
View the changelog for full details: v5.109.6...v5.110.0