Home

>

Tools

>

Ghost

>

Releases

>

4.5.0

Ghost Release: 4.5.0

Tag Name: v4.5.0

Release Date: 5/11/2021

Ghost LogoGhost

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

TL;DR

Ghost 4.5.0 introduces significant enhancements to the membership and newsletter features, allowing for custom product settings, multiple price support, and more granular control over content access and email recipients. The update enables content gating and email targeting based on member labels and products, along with improved newsletter recipient settings. This release also drops support for Node 10, requiring Node 12.22.1+ or 14.16.1+ as the minimum supported versions.

Highlight of the Release

    • Custom product settings and multiple price support for memberships
    • Content gating by member labels and products using NQL filters
    • Enhanced newsletter targeting with label and product-based recipient filters
    • Default newsletter recipient settings for site-wide control
    • Node 10 support dropped, requiring Node 12.22.1+ or 14.16.1+

Migration Guide

Node.js Version Update

  1. Ghost 4.5.0 has dropped support for Node 10, which reached end-of-life on April 30, 2021
  2. Update your Node.js installation to version 12.22.1+ or 14.16.1+ before upgrading Ghost
  3. If using Ghost-CLI, update to version 1.17.0 or higher:
    npm install -g ghost-cli@latest
    

Custom Products and Prices

  1. Existing installations will have their default product renamed to match the site title
  2. The "free" price now has configurable name and description settings
  3. If you were using the stripe_plans setting directly, note that Ghost is now using the stripe_prices database table instead

Content Visibility Changes

  1. Post visibility now accepts NQL filter strings (e.g., label:vip or product:premium)
  2. Existing visibility values (public, members, paid) continue to work as before
  3. Theme templates using {{#has visibility="paid"}} checks will continue to work as expected

Newsletter Recipients

  1. The email_recipient_filter query parameter now supports Ghost's filter syntax
  2. Legacy values (free, paid) are still supported for backward compatibility
  3. New site-wide default email recipient settings can be configured in the admin settings

Upgrade Recommendations

Priority: Medium

This upgrade is recommended for all Ghost users who want to take advantage of the enhanced membership and newsletter features. The upgrade is especially important for those running on Node 10, as this version is no longer supported.

Before upgrading:

  1. Ensure your server meets the new Node.js requirements (12.22.1+ or 14.16.1+)
  2. Update Ghost-CLI to version 1.17.0 or higher if you're using it
  3. Take a complete backup of your Ghost installation and database

Upgrade process:

Follow the standard Ghost upgrade process for your installation method. If you're using Ghost-CLI:

ghost update

After upgrading:

  1. Verify that your default product has been renamed to match your site title
  2. Check your newsletter recipient settings to ensure they match your expectations
  3. Test any custom theme code that might interact with visibility settings or member data

Bug Fixes

Member Management Fixes

  • Fixed labels not being saved with member during signup process
  • Fixed errors when importing comped Members
  • Made complimentary_plan & stripe_customer_id exclusive to prevent duplicate subscriptions

API and Data Handling

  • Fixed editors not being able to read labels when assigning member segments
  • Updated stripe_plans & portal_plans settings for better compatibility
  • Fixed path to eslint file for tests

New Features

Custom Products and Multiple Price Support

  • Added support for custom product settings allowing for more flexible membership offerings
  • Implemented multiple price options beyond just monthly and yearly subscriptions
  • Default product now automatically named after the site title for better branding consistency
  • Added description fields to products and prices for better communication with members

Enhanced Content Gating

  • Content can now be gated based on member labels and products using NQL filters
  • Post visibility can be set to target specific member segments (e.g., label:vip)
  • Maintains backward compatibility with existing visibility options (public/members/paid)

Improved Newsletter Targeting

  • Added ability to send newsletters to members with specific labels or products
  • Implemented NQL filter support for email recipient targeting
  • Updated the email recipient filter query parameter to support Ghost's filter syntax
  • Added site-wide default newsletter recipient settings for consistent email targeting

Security Updates

  • Bumped minimum Node version to 12.22.1 and 14.16.1 to incorporate latest security patches
  • Updated various dependencies to their latest versions with security fixes

Performance Improvements

Code Refactoring

  • Moved i18n to shared location for better code organization
  • Refactored i18n into a class + index for better dependency injection
  • Improved i18n with unified getCandidateString function
  • Refactored urlUtils out of ghost-server for more explicit logic
  • Switched to using .js files for eslint configuration for more flexibility

Dependency Updates

  • Updated multiple dependencies to their latest versions
  • Updated Casper theme to v4.0.5
  • Updated Ghost-Admin to v4.5.0

Impact Summary

Ghost 4.5.0 significantly enhances the membership and newsletter capabilities of the platform, providing site owners with more granular control over content access and email targeting. The introduction of custom product settings and multiple price support allows for more flexible membership offerings, while the ability to gate content and target newsletters based on member labels and products enables more personalized content delivery.

The update also includes important infrastructure changes, most notably dropping support for Node 10 and requiring Node 12.22.1+ or 14.16.1+. This ensures Ghost runs on supported and secure Node.js versions but requires attention from self-hosted users to update their environments.

For developers, the refactoring of various components like i18n and the introduction of NQL filtering capabilities provide a more maintainable codebase and powerful tools for custom integrations. Content creators will benefit from more precise targeting options for both content visibility and newsletter recipients.

Overall, this release represents a significant step forward in Ghost's membership capabilities while maintaining backward compatibility with existing setups.

Full Release Notes

  • ✨ Added custom product settings and multiple price support - Fabien 'egg' O'Carroll & Rishabh Garg
  • ✨ Added support for gating content by member labels and products (#12946) - Kevin Ansfield
  • ✨ Added label and product options for email recipients (TryGhost/Admin#1947) - Kevin Ansfield
  • ✨ Added ability to send a newsletter to members with a certain label or product (#12932) - Kevin Ansfield
  • ✨ Added default newsletter recipients setting (TryGhost/Admin#1946) - Kevin Ansfield
  • 🎨 Updated post settings menu visibility option to support member segments - Kevin Ansfield
  • 🐛 Fixed labels not being saved with member during signup - Kevin Ansfield
  • ⬆️ Bumped minimum Node version to 12.22.1 and 14.16.1 - Daniel Lockyer
  • ⬆️ Bumped required Ghost-CLI version to 1.17.0 - Daniel Lockyer
  • 🔥 Dropped support for Node 10 - Daniel Lockyer

ℹ️ Please note that Node 10 is now EOL and unsupported by Ghost 4.5.0 onwards, and the minimum Node 12 and 14 versions have been bumped - read our forum post for more.

🎨 Ghost 4.5.0 ships with Casper 4.0.5 as the default theme.


View the changelogs for full details:

Statistics:

File Changed264
Line Additions3,711
Line Deletions2,993
Line Changes6,704
Total Commits84

User Affected:

  • Can now create and manage custom product settings with multiple price options
  • Gain more control over newsletter recipient targeting with label and product filters
  • Need to ensure their Node.js environment meets the new minimum requirements (12.22.1+ or 14.16.1+)
  • Can configure default newsletter recipient settings site-wide

Contributors:

ErisDSallouisrshbhgrgdaniellockyerrenovate-botkevinansfieldnaz