Home

>

Tools

>

Ghost

>

Releases

>

5.87.0

Ghost Release: 5.87.0

Tag Name: v5.87.0

Release Date: 6/28/2024

Ghost LogoGhost

Open-source publishing platform specifically designed for professional bloggers and publications. Focuses on clean, minimalist writing and publishing experience.

TL;DR

Ghost v5.87.0: Performance Improvements, UI Enhancements, and Bug Fixes

This release brings significant performance improvements to Ghost's database queries, enhances the editor experience with updated toolbar designs, adds ActivityPub integration features, and fixes several critical bugs. Key improvements include optimized database indexes for faster content retrieval, refined UI elements in the editor, and better error handling in Sentry. This update is particularly beneficial for sites with large content databases and those using the editor frequently.

Highlight of the Release

    • Added composite indexes to the posts table for significant performance improvements in content retrieval
    • Updated editor toolbar and action button designs for a more consistent user experience
    • Enhanced ActivityPub integration with new empty state design and explore functionality
    • Fixed critical bugs including invalid tierId handling during member paid checkout
    • Optimized stats aggregation code for Admin dashboard to prevent stack size exceeded errors

Migration Guide

This release doesn't require any specific migration steps. The database indexes are added automatically during the upgrade process.

If you're using custom themes or integrations that interact with the editor or content API, you may want to test them after upgrading to ensure compatibility with the updated editor toolbar designs and API optimizations.

For developers using the Ghost API:

  • Be aware that objects passed as API input parameters now have stricter validation
  • The ActivityPub API root path has changed to /.ghost/activitypub from /activitypub

Upgrade Recommendations

This release is recommended for all Ghost users, especially those with:

  • Large content databases who will benefit from the performance improvements
  • Sites using the editor heavily who will appreciate the UI enhancements
  • Sites experiencing slow API responses or dashboard loading times

The upgrade process should be straightforward with no breaking changes. As always, it's recommended to:

  1. Back up your database before upgrading
  2. Test the upgrade in a staging environment if possible
  3. Verify your theme and custom integrations work correctly after upgrading

Bug Fixes

  • API and Data Handling

    • Fixed handling of objects as API input parameters to prevent "paramsMap is not a function" errors
    • Fixed invalid tierId handling during member paid checkout
    • Fixed TypeError when editor is focused when not fully loaded
  • UI and Settings

    • Fixed default recipients setting not showing label filters when set to "Specific people" with label filtering
    • Fixed flaky admin test in Publish+Send Flow to ensure consistent test results
  • Error Handling

    • Added multiple browser-related errors to Sentry exclusion list:
      • Errors caused by browser power-saving settings
      • AbortError when users navigate away mid-request
      • Browser autoplay errors
      • Other errors outside of Ghost's control that don't affect user experience
  • Removed unused type field that was causing React warnings when passed to textarea elements

New Features

  • ActivityPub Integration Enhancements

    • Added empty state design for better user experience
    • Added static design for ActivityPub explore functionality
    • Updated ActivityPub Admin X to work with Fedify API
    • Updated API root path to /.ghost/activitypub for better routing
  • Analytics for Internal Linking

    • Added analytic events to internal linking feature
    • Bumped Koenig to support events
    • Added siteUrl pass-through to Koenig to allow differentiation between internal and external URLs
  • Content Visibility Feature

    • Added contentVisibility feature flag to FeatureService
  • UI Improvements

    • Updated frontend styles for bookmark card with default white background color and sans-serif font
    • Updated editor toolbar and action button designs
    • Aligned button and tooltip styles with the rest of the editor

Security Updates

  • Reduced Sentry replays sample rate to 50% to stay within quota limits while maintaining error tracking capabilities
  • Updated various dependencies to their latest versions for security and stability improvements

Performance Improvements

  • Database Optimizations

    • Added composite index to posts table for type,status to improve content API and get helper performance
    • Added composite index to posts for updated_at for faster lookup of latest posts
    • Added composite index to posts_tags for post_id,tag_id for faster tag-based queries
    • Prevented pages content API queries from returning mobiledoc or lexical fields, reducing data transfer
  • Query Optimizations

    • Added option parameter to skip distinct from count query for members API, improving performance from 275ms to 30ms
    • Removed request queue enablement flag and updated logic to enable request queue only when explicitly configured
  • Admin Dashboard Optimization

    • Extracted and optimized stats aggregation function for Admin dashboard
    • Replaced recursive implementation with .reduce to prevent "Maximum call stack size exceeded" errors
    • Improved performance from 85ms to 1ms for stats aggregation
  • Logging Improvements

    • Added time field to slow get helper logging for easier querying and filtering in elastic without parsing message field

Impact Summary

This release significantly improves Ghost's performance through database optimizations and query enhancements, particularly for sites with large content databases. The addition of composite indexes to the posts table and optimization of member count queries can dramatically speed up content retrieval operations.

The editor experience has been refined with updated toolbar designs, action button styles, and bookmark card styling, creating a more consistent and polished interface for content creators.

Several critical bugs have been fixed, including issues with member checkout, label filtering in recipient settings, and error handling in the editor. The Sentry error reporting has been optimized to focus on actionable errors by excluding browser-related issues outside of Ghost's control.

ActivityPub integration has been enhanced with new designs and API improvements, furthering Ghost's capabilities for federated content distribution.

Overall, this release delivers meaningful performance improvements and quality-of-life enhancements that benefit all Ghost users, with particular value for high-traffic sites and those with large content databases.

Full Release Notes

  • 🎨 Updated editor toolbar and action button designs (#20405) - Sanne de Vries
  • 🐛 Fixed default recipients setting not showing label filters (#20480) - Sag

View the changelog for full details: v5.86.2...v5.87.0

Statistics:

File Changed53
Line Additions1,004
Line Deletions518
Line Changes1,522
Total Commits36

User Affected:

  • Improved editor experience with updated toolbar and action button designs
  • Enhanced bookmark card styling with default white background and sans-serif font
  • Added analytics events for internal linking feature
  • Fixed issue where editor could throw errors when focused but not fully loaded

Contributors:

renovate[bot]daniellockyermike182uk9larsonssagzyallouisdjordjevlaiskevinansfieldsanne-sanronaldlangeveldvershwalgithub-actions[bot]