Home

>

Tools

>

Ghost

>

Releases

>

5.47.0

Ghost Release: 5.47.0

Tag Name: v5.47.0

Release Date: 5/5/2023

Ghost LogoGhost

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

TL;DR

Ghost 5.47.0: TypeScript Migration, Node 14 Support Dropped, and Enhanced User Experience

Ghost 5.47.0 introduces significant improvements including the migration of post-revisions to TypeScript, enhanced post history tracking, better error messages for embeds, and improved navigation. This release drops support for Node 14 (now EOL) and includes several UI improvements like announcement bar styling and new language support. The update focuses on developer experience, user interface refinements, and internationalization with new locales including Russian and Portuguese.

Highlight of the Release

    • Migration of @tryghost/post-revisions to TypeScript
    • Dropped support for Node 14 (now EOL)
    • Added background save every 10 minutes to the lexical editor
    • Improved error messages for unauthorized YouTube embeds
    • Added missing history logs for post/page bulk actions
    • Added Russian and Portuguese locales
    • Enhanced announcement bar with better theme compatibility

Migration Guide

Node.js Version Update

  • Node 14 is no longer supported as it has reached End of Life (EOL)
  • Upgrade to Node 16 or later before updating to Ghost 5.47.0
  • No changes to your Ghost installation are required beyond ensuring you're running on a supported Node.js version

Feature Flag Cleanup

  • Several feature flags have been removed and their features are now enabled by default:
    • suppressionList - Suppression list feature is now the default behavior for all email events and newsletters
    • sourceAttribution - Source attribution is now enabled by default
    • memberAttribution - Member attribution is now enabled by default

Package Dependencies

  • If you have custom themes or integrations that depend on oembed-parser, note that it has been completely removed in favor of @extractus/oembed-extractor
  • Updated dependencies include:
    • @playwright/test to v1.33.0
    • vite to v4.3.5
    • date-fns to v2.30.0
    • @types/sinon to v10.0.14
    • jsdom to v21.1.2
    • @sentry/node to v7.50.0
    • lerna to v6.6.2
    • vitest to v0.31.0

Upgrade Recommendations

Who should upgrade immediately:

  • Users running Ghost on Node 14 should upgrade their Node.js version and then update Ghost
  • Users who need the improved error handling for YouTube embeds
  • Developers who want to take advantage of TypeScript in the post-revisions package
  • Sites using multiple languages that would benefit from the new locales

Who can wait:

  • Users who don't rely on any of the specific bug fixes or new features
  • Sites not affected by the security fix for private Author fields in Content API

How to upgrade:

  1. Ensure you're running Node 16 or later (Node 14 is no longer supported)
  2. Follow the standard Ghost upgrade process:
    • Back up your database
    • Run ghost update if using Ghost-CLI
    • Or pull the latest changes and run yarn setup if using a custom installation

This is a standard feature release with important bug fixes and enhancements, but no critical security issues that would require an immediate upgrade for all users.

Bug Fixes

Editor & Content Management

  • Fixed CMD/shift clicking to open the editor in a new tab/window
  • Fixed contributor post list button that incorrectly showed edit option for published posts
  • Updated contributor view post button color to differentiate from edit button
  • Prevented post history from being viewed for emailed posts
  • Fixed an issue with posts_meta data in the data-generator process

Navigation & UI

  • Fixed members breadcrumbs when not coming from analytics
  • Added missing history logs for post/page bulk actions
  • Improved error message for unauthorized YouTube embeds
  • Fixed hiding of preview select for design/announcement settings when no published posts exist
  • Fixed linting issues that were being ignored by eslint

Technical Fixes

  • Fixed erroneous timing in reported Mailgun metrics
  • Fixed sodo-search build script
  • Prevented an invalid order during deletion
  • Fixed snapshot tests for MySQL only newsletter test
  • Fixed filtering on private Author fields in Content API (security fix)

New Features

TypeScript Migration

  • Migrated @tryghost/post-revisions to TypeScript, marking the beginning of TypeScript adoption in Ghost packages
  • Added TypeScript configuration compatible with Ghost's Node environment
  • Updated tests to use ts-node for a smoother development experience

Development Improvements

  • Added --all flag to run all apps and services including Stripe
  • Added --offline flag to disable network services
  • Added .vscode/launch.json to git for shared VSCode debugger configurations
  • Updated npm scripts to support packages with a build step

UI Enhancements

  • Added image editing feature for publication logo and cover (behind feature flag)
  • Added author image to revision history list
  • Added unpublished reason to post revisions with appropriate tag display
  • Enhanced announcement bar with better theme compatibility and explicit styling rules

Internationalization

  • Added Russian locale
  • Added Portuguese locale for Portal
  • Updated Sinhalese translations
  • Fixed Italian localization
  • Updated Portal back button translations

Security Updates

  • Fixed filtering on private Author fields in Content API (GHSA-r97q-ghch-82j9)
    • Addressed a vulnerability where it was possible to fetch authors and filter by password or email field
    • Prevented potential brute force attacks that could leak sensitive data by trying combinations of characters with the "starts with" operator

Performance Improvements

  • Updated the build process to run in production mode for Admin builds by default
  • Improved the revisionList method by sorting by createdAt property in descending order
  • Added "published_latest" key to revisionList for better data organization
  • Refactored revisionList function to use more concise logic for finding new published and unpublished revisions
  • Updated CSS preprocessors for better performance
  • Removed duplicate matchHTMLSnapshot and readded matchMetadataSnapshot for more efficient testing

Impact Summary

Ghost 5.47.0 represents a significant step forward in the platform's technical foundation and user experience. The migration of the post-revisions package to TypeScript marks the beginning of a gradual shift toward TypeScript adoption throughout the codebase, which will improve type safety and developer experience in the long run.

The removal of Node 14 support aligns Ghost with current Node.js lifecycle management, ensuring the platform runs on supported and secure versions. This change requires action from users still running on Node 14.

Content creators will appreciate the improved editor experience with background saves every 10 minutes, better error messages for embeds, and enhanced revision history with author images and unpublished status indicators. These changes make the content creation process more reliable and informative.

Administrators benefit from better bulk action logging, improved navigation in the members section, and enhanced announcement bar styling that works better with custom themes.

The addition of Russian and Portuguese locales, along with improvements to existing translations, continues Ghost's commitment to internationalization, making the platform more accessible to users worldwide.

Overall, this release balances technical improvements with user-facing enhancements, setting the stage for future development while addressing current pain points and feature requests.

Full Release Notes

  • ✨ Migrated @tryghost/post-revisions to TypeScript! - Fabien "egg" O'Carroll
  • 🐛 Added missing history logs for post/page bulk actions (#16734) - Simon Backx
  • 🐛 Improved error message for unauthorized YouTube embeds (#16374) - Chris Raible
  • 🐛 Fixed members breadcrumbs when not coming from analytics - Simon Backx
  • 🐛 Fixed CMD/shift clicking to open the editor in a new tab/window - Simon Backx
  • 🔥 Dropped support for Node 14 - Daniel Lockyer

View the changelog for full details: v5.46.1...v5.47.0

🌐 Help us translate Ghost + Portal: https://forum.ghost.org/t/help-translate-ghost-beta/37461

Statistics:

File Changed126
Line Additions2,532
Line Deletions2,900
Line Changes5,432
Total Commits65

User Affected:

  • Need to upgrade from Node 14 as it's no longer supported
  • Can now work with TypeScript in the post-revisions package
  • Benefit from improved debugging with VSCode launch configurations
  • Can use new dev flags: `--all` and `--offline` for development

Contributors:

renovate[bot]ronaldlangevelddaniellockyernDrayZabriskijeUvinduBrolenabaidakovaallouispeterzimonSimonBackxsanne-sanmike182uksam-lordgithub-actions[bot]cmraibleminimaluminiumrshbhgrgEflarus