TL;DR
Ghost v5.77.0: Offers in new settings, improved UX, and critical bug fixes
This release moves Offers to the new settings interface and addresses several important bugs affecting user experience. Key improvements include fixing preview access for scheduled email-only posts, resolving image display issues in Outlook, and enhancing member filtering functionality. The update also improves Portal functionality and fixes UI inconsistencies in dark mode.
Highlight of the Release
- Offers moved to the new settings interface for improved management
- Fixed preview access for scheduled email-only posts
- Improved handling of externally hosted images in email newsletters
- Added support for 'Refresh Ahead' caching strategy
- Enhanced member filtering with fixed post search functionality
- Added Sentry instrumentation for better error tracking
- Expanded localization with new and updated translations
Migration Guide
This release doesn't require any specific migration steps. The move of Offers to the new settings interface happens automatically, and all bug fixes are applied without requiring manual intervention.
If you're using custom caching configurations, you may want to review the new Refresh-Ahead caching strategy options to take advantage of performance improvements:
"adapters": {
"cache": {
"Redis": {
"host": "127.0.0.1",
"port": 6379,
"username": "",
"password": "",
"ttl": 60,
"storeConfig": {
"maxRetriesPerRequest": 1,
"enableOfflineQueue": false,
"retryConnectSeconds": 60
}
},
"stats": {
"adapter": "Redis",
"ttl": 3600,
"refreshAheadFactor": 1,
"keyPrefix": "site:123456:stats"
}
}
}
For developers using the stats cache, you can now enable it via:
"hostSettings": {
"statsCache": {
"enabled": true
}
}
Upgrade Recommendations
This release is recommended for all Ghost users, especially those who:
- Use the Offers feature and want to benefit from the improved management interface
- Send email newsletters with externally hosted images
- Work with scheduled email-only posts
- Experience issues with dark mode in the Settings/Recommendations tab
- Use member filtering extensively
The upgrade process follows the standard Ghost update procedure and should be straightforward with no breaking changes. As always, it's recommended to backup your database before upgrading.
Bug Fixes
Content & Editor
- Fixed broken access to preview of scheduled email-only posts.
- Fixed rare rendering issue of lists appearing as headings.
- Fixed externally hosted images overflowing in Outlook by properly populating width and height attributes.
- Fixed custom excerpts sometimes being cut off due to escaped characters adding extra length.
- Fixed in-editor style regressions caused by mangled class names following a Tailwind update.
UI & Experience
- Fixed dark mode not working properly in Settings/Recommendations tab by implementing TailwindCSS class for dark background in table footer.
- Fixed type error when logging editor errors.
- Fixed Portal and iframe-related issues:
- Added hasLoaded state in Portal Frame to track iframe content loading.
- Removed onLoad function from the iFrame element and rely on listener for 'portal-ready'.
- Added delay to avoid preview flashing.
- Optimized iframe for offers to prevent flashing experiences.
Member Management
- Fixed searching posts in member filters by correcting the search field from 'name' to 'title'.
- Fixed wording when a canceled subscription has not ended yet to correctly show "Has access until x" instead of "Ended x".
- Fixed member subscription status when multiple subscriptions exist by showing the status of the active subscription.
- Fixed Offers redemptions preselection in filter dropdown after navigation.
Email & Newsletters
- Fixed embed service trying http before https for oembed providers, which could lead to broken embed fetch requests.
- Fixed reply-to address to stay the same after DMARC changes.
- Fixed clearing invalid sender_email when changing newsletter sender_reply_to.
- Updated design for sender and reply-to email address flow.
Other
- Fixed primary_name crashing Settings history by adding optional chaining operator.
- Fixed links in History that were using Ember route instead of absolute routes, causing 404s.
New Features
Offers in New Settings
- Moved Offers to the new React-based settings interface, providing a more consistent and modern management experience.
- Removed flags for the new Offers in Admin X (Settings).
- Removed old Offers from the sidebar.
Backend Launch Task
- Added backend launch task for debugging server-side code paths.
Caching Improvements
- Added support for "Refresh Ahead" caching strategy.
- Implemented configuration options for stats endpoints caching via
hostSettings.statsCache.enabled.
- Updated the pipeline to allow for background refresh of the cache.
Sentry Instrumentation
- Added Sentry instrumentation for get helpers to help debug ABORTED_GET_HELPER errors.
- Added allowlist for Sentry transactions to better control data sent to Sentry.
- Added homepage, pages/posts, tag page, and author page to the list of transactions that will send to Sentry.
Localization Enhancements
- Added Lithuanian locale for Portal.
- Updated Russian translations for Ghost.
- Updated Finnish translations for comments.
- Updated Danish translations with fixed misspellings and improved sentences.
- Updated French translations for Portal, comments, and general UI.
Security Updates
- Updated dependency vite to v4.5.2 to address security vulnerabilities.
- Updated various dependencies to their latest versions to incorporate security patches.
Performance Improvements
Caching Enhancements
- Implemented Refresh-Ahead caching for Redis to update cache contents in the background.
- Added configuration options for stats endpoints caching to improve response times.
- Refactored the pipeline execution to async functions for better readability and future background execution.
Member Filtering
- Improved performance when loading posts in member filters:
- Ensured no relations are loaded unnecessarily
- Only returning fields that are actually needed
- Replaced limit=all with network-based search
Portal Optimizations
- Added default string to href to Offers Portal iFrame to avoid loading the homepage unnecessarily.
- Made offers iframe init load async to ensure it waits for event data before rendering.
- Added additional conditions for when the Portal iframe should be visible.
- Added delay before making Portal visible to give it time to properly load.
Code Improvements
- Removed usage of EventAwareCacheAdapter in favor of simpler, more direct implementation.
- Removed unneeded analytics for model events that weren't being actively used.
- Removed ModelEventsAnalytics entirely as it was no longer needed.
Impact Summary
Ghost v5.77.0 brings significant improvements to the user experience for both administrators and content creators. The most notable change is moving Offers to the new settings interface, providing a more modern and consistent management experience.
Several critical bugs have been fixed, including issues with previewing scheduled email-only posts, externally hosted images overflowing in Outlook, and dark mode inconsistencies in the Settings/Recommendations tab. These fixes enhance the reliability and usability of Ghost for everyday operations.
Performance improvements include enhanced caching strategies with the new Refresh-Ahead implementation, optimized member filtering, and more efficient Portal iframe handling. These changes should result in better response times and a smoother user experience.
For developers, the addition of backend launch tasks for debugging server-side code paths and Sentry instrumentation for get helpers provides better tools for troubleshooting and monitoring. The codebase has also been cleaned up by removing unnecessary components like the EventAwareCacheAdapter and ModelEventsAnalytics.
Localization has been expanded with new Lithuanian locale for Portal and updates to Russian, Finnish, Danish, and French translations, making Ghost more accessible to a global audience.
Full Release Notes
- 🎨 Moved Offers to the new settings (#19493) - Ronald Langeveld
- 🐛 Fixed broken access to preview of scheduled email-only posts (#19539) - Kevin Ansfield
- 🐛 Fixed externally hosted images overflowing in Outlook (#19527) - Chris Raible
- 🐛 Fixed wording when a canceled subscription has not ended yet (#19523) - Sag
- 🐛 Fixed embed service trying http before https for oembed providers (#19521) - Kevin Ansfield
- 🐛 Fixed rare rendering issue of lists appearing as headings (#19511) - renovate[bot]
- 🐛 Fixed searching posts in member filters (#19505) - Simon Backx
View the changelog for full details: v5.76.2...v5.77.0