TL;DR
Ghost v5.129.0 introduces significant improvements to search functionality, analytics, and feature management. The update includes server-side tag filtering with infinite scroll pagination, search index endpoints for posts/pages/tags/users, and a new limit enforcement system for subscription-based features. Staff bios now support 250 characters (up from 200), and the admin interface has been updated with analytics as the default homepage. Several bug fixes address permission issues with staff tokens, HEIC/HEIF image support, and UI improvements for dark newsletter backgrounds.
Highlight of the Release
- Improved tag management with server-side filtering and infinite scroll pagination
- Added search index endpoints for posts, pages, tags, and users in Admin API
- Fixed staff tokens to properly grant user permissions
- Implemented limit enforcement for subscription-based features
- Changed admin homepage to analytics with improved empty states
- Increased staff bio character limit from 200 to 250
Migration Guide
Tag Management Changes
If you've built custom integrations that rely on fetching all tags at once, you may need to update your code to work with the new pagination and filtering approach. The API now supports "contains" queries with ?filter=tags.name:~'query'
which should be used instead of fetching all tags and filtering client-side.
Staff Token Usage
Staff tokens now properly grant the same permissions as the user they're associated with. If you were working around permission issues with staff tokens, you can now remove those workarounds. Note that two operations remain unsupported with staff tokens:
- Delete all content
- Transfer ownership
Analytics as Default Homepage
If you have custom navigation or bookmarks that rely on the previous default homepage, you may need to update them as the admin interface now defaults to the analytics page when enabled by the beta flag.
Upgrade Recommendations
This is a recommended upgrade for all Ghost users, especially those who:
- Manage sites with large numbers of tags
- Use staff tokens for API authentication
- Want to take advantage of the improved analytics features
- Need the new search index endpoints for custom integrations
The update includes significant performance improvements for tag management and fixes several important bugs, particularly around staff token permissions and API authentication. There are no breaking changes that would require immediate attention, making this a safe upgrade for most installations.
For developers with custom integrations, review the migration guide to ensure compatibility with the new tag filtering approach.
Bug Fixes
Permission and Authentication Fixes
- Staff token permissions: Fixed staff tokens not giving proper user permissions, ensuring they work as intended for API authentication
- Initial API request errors: Fixed 403 errors in initial Tinybird API requests by properly waiting for token availability
UI and Display Fixes
- Newsletter text contrast: Fixed lists having dark text on dark newsletter backgrounds by adding color inheritance
- Link display in Growth tab: Fixed link display with Direct traffic in Growth tab for consistency
- ActivityPub improvements:
- Fixed incorrect inline follow button display in ActivityPub
- Removed timestamp links from Ghost-created notes in ActivityPub
- Post analytics: Fixed editor breadcrumbs pointing to new analytics page
Media Handling
- HEIC/HEIF support: Added conversion of HEIC/HEIF files to JPG in media-inliner for better cross-browser compatibility
Other Fixes
- Labs display: Fixed labs display for configs missing limiter
- Tinybird tracker token: Disabled Tinybird tracker token in production for better security
- Theme overwrite: Fixed theme overwrite cancel button behavior
New Features
Search and Filtering Improvements
- Server-side tag filtering: Implemented server-side "contains" filtering for tags with infinite scroll pagination, replacing the previous approach of loading all tags at once
- Search index endpoints: Added new Admin API endpoints for search indexing:
GET /ghost/api/admin/search-index/posts
GET /ghost/api/admin/search-index/pages
GET /ghost/api/admin/search-index/tags
GET /ghost/api/admin/search-index/users
- Tag search in dropdowns: Added search functionality to tag filter dropdowns in the posts list
Analytics and UI Enhancements
- Analytics as default homepage: Updated the default route to
/analytics
when enabled by beta flag
- Improved empty states: Added comprehensive empty state handling for site-wide analytics
- Chart improvements: Added dashed line for average values in newsletter open & click rate charts
- Network icon and menu: Updated main menu item from Home to Network with new icon for Social Web users
Feature Management
- Limit enforcement system: Implemented comprehensive limit enforcement for subscription-based features:
- Web Analytics
- Social Web
- Stripe Connect
- Theme limits
- Comment creation via API: Added Admin API endpoint for creating comments with member impersonation
User Experience Improvements
- Longer staff bios: Increased the soft limit on users.bio from 200 to 250 characters
- Generic tag input component: Extracted a reusable
<GhTagsTokenInput>
component for consistent tag selection across the admin interface
Security Updates
No significant security fixes were explicitly mentioned in this release.
Performance Improvements
Tag Management Performance
- Reduced API load: Eliminated the need to fetch all tags when:
- Opening post settings menu
- Bulk-adding tags
- Accessing the tags screen
- Infinite scroll pagination: Implemented to load only necessary tags instead of fetching all at once
- Server-side filtering: Added "contains" filtering on the server side to reduce client-side processing
Search Index Optimization
- Streamlined search endpoints: New search index endpoints return only necessary fields for search functionality
- Reduced payload size: Removed unused timestamps in Search Index Posts Content API
- Efficient data loading: Search index endpoints return up to 10k items sorted by most recently updated
API Caching
- Tags screen caching: Set up InfinityModel to cache tags for 5 minutes to avoid unnecessary queries when switching between filters or screens
Impact Summary
Ghost v5.129.0 delivers substantial improvements to performance and user experience, particularly for sites with large numbers of tags. The shift to server-side tag filtering with infinite scroll pagination eliminates the need to load all tags at once, which could previously cause performance issues on sites with thousands of tags.
The new search index endpoints provide a more efficient way to access content for search functionality, returning only necessary fields and supporting up to 10,000 items per request. This enables better search experiences in the admin interface and potentially for custom integrations.
The fix for staff token permissions resolves a long-standing issue where tokens didn't properly grant the same access as the associated user, making them more reliable for API authentication workflows.
The introduction of a comprehensive limit enforcement system lays groundwork for Ghost's upcoming pricing structure with gated features based on subscription plans. This ensures users on restricted plans will see appropriate messaging and upgrade paths.
For content creators, the increased staff bio character limit and improved tag management provide immediate quality-of-life improvements, while administrators will benefit from analytics becoming the default homepage with better empty states and visualizations.
Overall, this release balances performance optimizations, bug fixes, and feature enhancements that improve the experience for all types of Ghost users.
Full Release Notes
- 🎨 Changed users.bio soft limit from 200 to 250 (#24198) - Troy Ciesco
- 🎨 Added search to tags filter dropdown on posts list - Kevin Ansfield
- 🐛 Fixed lists having dark text on dark newsletter backgrounds - Kevin Ansfield
- 🌐Update Punjabi translations for Ghost and Portal (#24122) - Aditya Malik
- 🌐Updated Nepali translations for Ghost and Comments (#24181) - Sparsh
View the changelog for full details: v5.128.1...v5.129.0