Home

>

Tools

>

Ghost

>

Releases

>

5.95.0

Ghost Release: 5.95.0

Tag Name: v5.95.0

Release Date: 9/27/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.95.0: Search Internationalization & Enhanced User Experience

Ghost 5.95.0 brings full internationalization support to the native search feature, completing i18n support across Ghost's frontend. This release includes translations for multiple languages including Estonian, Bulgarian, German, and Brazilian Portuguese. The update also fixes navigation issues for sites hosted in subdirectories and improves the ActivityPub integration with lazy loading for better performance. Admin UI enhancements include updated button styles, improved stats page implementation, and various bug fixes for a more stable experience.

Highlight of the Release

    • Added complete i18n support to search, the last missing piece for full frontend internationalization
    • New translations for multiple languages including Estonian, Bulgarian, German, and Brazilian Portuguese
    • Improved stats page implementation with better filtering and clickthrough capabilities
    • Fixed navigation links for Ghost sites hosted on subdirectories
    • Added post restore UI for recovering content from local storage in case of data loss
    • Implemented lazy loading for Inbox & Activities for significantly faster performance

Migration Guide

No breaking changes were introduced in this release that require migration steps. The update from v5.94.2 to v5.95.0 should be straightforward with no special actions required.

If you're using custom themes or integrations that interact with the search functionality, you may want to review the new i18n support to ensure your customizations work properly with the translated search interface.

Upgrade Recommendations

This is a feature release with significant improvements to internationalization support, UI enhancements, and bug fixes. The upgrade is recommended for all users, especially for:

  • Sites with international audiences who will benefit from the complete i18n support for search
  • Sites hosted on subdirectories that were experiencing navigation link issues
  • Administrators who want to take advantage of the improved stats page and post management features

There are no breaking changes in this release, making it a safe upgrade from v5.94.2. As always, it's recommended to backup your database before upgrading and test the upgrade in a staging environment if possible.

Bug Fixes

Navigation and URL Handling

  • Fixed navigation links for Ghost sites hosted on a subdirectory where links to /blog/page/ were being incorrectly rewritten as /page/
  • Fixed the underlying formatUrl utility function and added unit tests

Post Management

  • Fixed infinite loops in setFeatureImageCaption for deleted posts by adding a condition to check whether the record is deleted
  • Added full-page refresh when new post route is in a bad state to prevent save failures
  • Fixed browser tests incorrectly executing Stripe CLI, cutting 2 minutes from test time

UI and Visual Fixes

  • Fixed comment form visual issues including alignment when editing and increased default height
  • Fixed spacing for reply input field and updated placeholder text color to work in dark mode
  • Fixed Article feature image not showing up in the feed
  • Fixed browser/device missing data in TinyBird analytics

Performance and Storage

  • Refactored local revisions to avoid QuotaExceededErrors by removing the index concept
  • Added Sentry logging to local revisions service for localStorage errors
  • Fixed tests failing with native stack traces due to blob.slice() calls

New Features

Search Internationalization

  • Added complete i18n support to search, which was the last missing piece for full frontend internationalization
  • Translation helper added to sodo-search with all strings wrapped for translation
  • Ghost head tweaked to include data-locale for proper language detection

Post Management Improvements

  • Added unschedule bulk action to posts for easier content scheduling management
  • Added post restore UI with a new /restore path in admin for recovering content from local storage
  • Added limits for number of revisions for posts with an ID (5 revisions)

ActivityPub Enhancements

  • Implemented lazy loading for Inbox & Activities for significantly faster performance
  • Added proper pagination for both views to handle larger amounts of data
  • Added formatting for numbers in Tab counters and FeedItem stat counters
  • Added break-all to links inside notes to avoid overflows
  • Added fallback for Avatars when image loading fails

Stats Page Improvements

  • Improved implementation of the stats page for better developer experience
  • Added clickthrough filtering for content, sources, and locations
  • Updated UI to show visits instead of hits/pageviews for clearer analytics
  • Standardized terminology between visits (unique) and pageviews

Admin UI Enhancements

  • Updated button styles with outline buttons, white background for better contrast, and slightly more rounded corners
  • Improved right-click and dropdown menu typography and spacing
  • Added reply button to comment replies
  • Updated comment report modal with improved copy and responsive styles

Security Updates

  • Updated dependency mysql2 to v3.11.3 [SECURITY]
  • Various dependency updates to address security vulnerabilities

Performance Improvements

Build and CI Improvements

  • Enabled Nx caching on main branch to speed up workflows by not rebuilding TypeScript projects all the time
  • Merged setup steps in CI to reduce GitHub job startup overhead (10-12s per job)
  • Increased parallelization of Nx processes to better utilize available cores in CI and local machines
  • Fixed browser tests incorrectly executing Stripe CLI, cutting 2 minutes from test time

Frontend Performance

  • Implemented lazy loading for Inbox & Activities, making loading significantly faster
  • Added proper pagination for both Inbox and Activity views to handle larger amounts of data efficiently
  • Removed OpenTelemetry due to performance concerns with boot time

Storage Optimization

  • Refactored local revisions to avoid QuotaExceededErrors by removing the index concept
  • Simplified saving and removing revisions from localStorage
  • Optimized TinyBird data storage by removing unnecessary protocol and www prefixes from referrer data

Impact Summary

Ghost v5.95.0 completes the internationalization journey for Ghost's frontend by adding i18n support to the search feature. This is a significant milestone that makes Ghost fully accessible to non-English speaking users. The release also brings important fixes for sites hosted in subdirectories and introduces quality-of-life improvements for content creators and site administrators.

The stats page has been significantly enhanced with better filtering capabilities and clearer metrics, showing visits instead of hits for more accurate analytics. ActivityPub integration now benefits from lazy loading, making the inbox and activities views much faster and more scalable.

For developers, build performance improvements through Nx caching and increased parallelization will speed up development workflows. The addition of a post restore UI provides a safety net for content creators in rare cases of data loss.

Overall, this release focuses on polishing the user experience, improving performance, and expanding Ghost's global reach through better internationalization support.

Full Release Notes

  • ✨ Added i18n support to search - ready for translator work! (#21055) - Cathy Sarisky
  • 🎨 Updated Casper to v5.7.5 - Ghost CI
  • 🌐 Added missing locales to i18n.js (#21144) - Cathy Sarisky
  • 🌐 Added Estonian translations (#21129) - WindTheWhisperer
  • 🌐 Added new Brazilian Portuguese new i18n strings (#21101) - SΓ©rgio Spagnuolo
  • 🌐 Updated Turkish translation (#21110) - Mertcan GΓ–KGΓ–Z
  • 🌐 Added Bulgarian translation for search (#21102) - Stanislav Traykov
  • 🌐 Bulgarian translation updates (Sep 2024) (#21062) - Yovko Lambrev
  • 🌐 German translations (#21050) - Cathy Sarisky
  • 🌐 Updated Gaelic portal / search translations (#21093) - Chris Mitchell
  • 🌐 Update pt-BR translation of search.json (#21100) - Alexandre "Lekler" Rodrigues
  • πŸ› Fixed infinite loops in setFeatureImageCaption for deleted posts (#21081) - Ronald Langeveld
  • πŸ› Fixed navigations links for Ghost sites hosted on a subdirectory (#21071) - Sag

View the changelog for full details: v5.94.2...v5.95.0

Statistics:

File Changed285
Line Additions4,855
Line Deletions2,433
Line Changes7,288
Total Commits85

User Affected:

  • Can now restore posts from local storage in case of data loss
  • Fixed navigation links for sites hosted on subdirectories
  • Improved UI for unscheduling posts with new bulk action

Contributors:

renovate[bot]daniellockyersanne-sansagzydjordjevlaiskevinansfieldpeterzimonminimaluminiummike182ukallouisErisDScathysarisky9larsonscmraibleronaldlangeveldLeklerangeidhealyovkoStanTraykovmertcangokgozsergiospagnuoloWindTheWhisperergithub-actions[bot]