TL;DR
Ghost 3.0.3 brings several important bug fixes and enhancements to the platform, particularly around member webhooks, RSS feeds, and SQLite migrations. This maintenance release addresses critical issues affecting content display, member management, and theme functionality. Notable additions include new webhooks for member events and improved styling for posts without feature images. The update also fixes several frontend issues and improves performance through deferred loading of dependencies.
Highlight of the Release
- Fixed SQLite subscribers migration issues that were preventing successful upgrades for some users
- Added new webhooks for member events:
member.edited and member.deleted
- Fixed RSS feed errors when posts have no content
- Added automatic 'no-image' class to content without feature images
- Improved performance by deferring loading of metascraper dependency
Migration Guide
This is a maintenance release with no breaking changes, so upgrading from Ghost 3.0.2 to 3.0.3 should be straightforward.
If you were experiencing issues with SQLite migrations in version 3.0.2, particularly with subscriber data, this release should resolve those problems.
For developers using webhooks for member events, note that there are new webhook events available: member.edited and member.deleted. The payload structure for these events has been standardized to ensure consistency.
Upgrade Recommendations
We recommend all Ghost 3.0.x users upgrade to version 3.0.3 as soon as possible, especially if you:
- Use SQLite as your database and experienced migration issues
- Rely on RSS feeds for content distribution
- Use member-gated content in your theme
- Have implemented webhooks for member events
This is a maintenance release focused on bug fixes and minor enhancements, with no breaking changes, making it a safe upgrade for all users.
Bug Fixes
-
RSS Feed Errors: Fixed internal error for RSS feed when a post has no content by ensuring htmlRelativeToAbsolute properly handles null values.
-
SQLite Migration: Fixed 3.0 SQLite subscribers migration (#11383) that was failing due to SQLite's 999 variable limit.
-
Post Preview: Fixed post preview access flag in 3.0 (#11275) which was causing Member themes to incorrectly hide content.
-
HTML Titles: Fixed incorrect HTML title appearing on 'pages' pages (#11358).
-
Twitter Meta: Fixed Twitter meta description for pages that was introduced in a previous update.
-
Member Webhooks: Fixed member.deleted webhook having an empty payload by adjusting the output serializer to use a mapper.
-
Code Injection: Fixed code injection input sizes when they have long lines (#1394) for better usability.
-
Labs Flags: Ensured deprecated labs flags are properly unset to prevent theme compatibility issues where themes depend on old labs flags.
New Features
-
Member Webhooks: Added new webhooks for member events:
member.edited webhook that triggers when a member is updated
member.deleted webhook with proper payload handling
-
Automatic No-Image Class: Added automatic no-image class to content without feature images, making it easier for themes to style these posts appropriately without manual implementation.
-
Node.js v12 Support: Added official support for Node.js v12 which is now LTS (Long Term Support). The --ignore-engines flag is no longer needed.
Security Updates
No security fixes were explicitly mentioned in this release.
Performance Improvements
-
Deferred Loading: Reduced Ghost boot time by deferring loading of metascraper dependency (#11337), improving startup time from 1.47s to 1.33s.
-
Architecture Improvements: Decoupled routing service and theme service for better architecture and performance, working towards having the entire frontend respect the theme API version.
Impact Summary
Ghost 3.0.3 is primarily a maintenance release that addresses several important bugs and adds a few quality-of-life improvements. The most significant impact is for users who experienced SQLite migration issues in previous 3.0.x versions, as this release specifically fixes the 999 variable limit problem that prevented successful migrations.
Content creators will benefit from fixes to page titles, Twitter meta descriptions, and code injection inputs. The automatic addition of the 'no-image' class to posts without feature images will improve styling consistency across themes without requiring manual implementation.
Developers gain access to new webhooks for member events, providing better integration capabilities for member management systems. The architectural improvements, including decoupling the routing and theme services, lay groundwork for future enhancements to the theming system.
Performance improvements, particularly the deferred loading of metascraper, result in faster Ghost startup times, which benefits all users but is especially valuable in development environments and during deployments.
Full Release Notes
- ✨ Added no-image class to content w/o feature_image - Hannah Wolfe
- ✨ Added
member.edited webhook - Kevin Ansfield
- ✨ Added
member.deleted webhook - Kevin Ansfield
- 🎨 Refreshed Koenig styles - Peter Zimon
- 🐛 Fixed 3.0 SQLite subscribers migration (#11383) - Naz Gargol
- 🐛 Fixed incorrect html title appearing on 'pages' pages (#11358) - Naz Gargol
- 🐛 Ensured deprecated labs flags are unset - Hannah Wolfe
- 🐛 Fixed code injection input sizes when they have long lines (#1394) - Peter Zimon
- 🐛 Fixed internal error for RSS feed when a post has no content - Kevin Ansfield
- 🐛 Fixed post preview
access flag in 3.0 (#11275) - Casper
Casper (the default theme) has been upgraded to 3.0.3:
- 🐛 Fixed page style in dark mode - Peter Zimon
You can see the full change log for the details of every change included in this release.