Home

>

Tools

>

Ghost

>

Releases

>

0.9.0

Ghost Release: 0.9.0

Tag Name: 0.9.0

Release Date: 7/26/2016

Ghost LogoGhost

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

TL;DR

Ghost 0.9.0 introduces scheduled posts, configurable blog timezones, and internal tags (beta). This release significantly improves the admin experience with better error handling during upgrades, fixes critical bugs like tag deletion when editing posts via API, and changes the recommended Node version to v4. The update focuses on giving publishers more control over content scheduling and organization while improving overall system stability and performance.

Highlight of the Release

    • Scheduled posts feature allows content to be published automatically at a future date
    • Configurable blog timezone settings for accurate scheduling
    • Internal tags (Beta) for organizing content without public display
    • Improved installation and upgrade process
    • Better error handling during maintenance and upgrades
    • Fixed critical bug where editing a post via API would delete tags
    • Improved session handling for intermittent connections
    • Changed referrer policy to improve in-site analytics
    • Node.js v4 is now the recommended version

Migration Guide

Node.js Version

Ghost now recommends Node.js v4 as the default environment. If you're running an older version, you should upgrade to v4 for optimal performance and compatibility.

# Check your current Node.js version
node -v

# If not on v4.x, consider upgrading using nvm or your preferred method

Database Migrations

This release includes significant database changes, particularly around timezone handling. The migration will run automatically when you upgrade, but you should ensure you have a backup of your database before upgrading.

Configuration Updates

If you want to configure the new referrer policy or maintenance mode, you can add these options to your config.js file:

// Example config additions
config = {
    // ... your existing config
    referrerPolicy: 'origin-when-cross-origin',
    maintenance: {
        enabled: false
    }
};

Theme Compatibility

If your theme uses custom tag handling, you may need to update it to properly handle the new internal tags feature. Internal tags have a visibility property that themes can check.

Upgrade Recommendations

Priority: Medium to High

This release contains significant new features and important bug fixes that most users will benefit from. The scheduled posts feature alone makes this a worthwhile upgrade for content creators.

Before upgrading:

  1. Make a complete backup of your Ghost installation and database
  2. Ensure you're running Node.js v4 (recommended) or later
  3. Check theme compatibility if you're using a custom theme

Upgrade process:

  1. Follow the standard Ghost upgrade process
  2. After upgrading, check your timezone settings in the admin interface
  3. Test scheduled posts functionality if you plan to use it

If you're experiencing any of the specific bugs fixed in this release (particularly the API tag deletion issue or image upload problems), upgrading is strongly recommended.

Bug Fixes

Fixed Tag Deletion Issue

Fixed a critical bug where editing a post via the API without providing a tags list would delete all of the post's existing tags.

Fixed "Access Denied" Errors

Resolved issues with "Access Denied" errors that would occur when uploading images.

Fixed Subdirectory Installation Problems

Resolved issues with running Ghost in nested subdirectories (e.g., mysite.com/my/blog).

Fixed Navigation URL Issues

  • Fixed issues with domain:port references in navigation
  • Fixed problems with external pages in navigation containing domain names
  • Fixed issues with the back link on the subscribe page

Fixed Session Handling

Improved session handling on intermittent connections, making it easier to stay logged in to the admin interface.

New Features

Scheduled Posts

Ghost now supports scheduling posts to be published automatically at a future date and time. This highly requested feature allows content creators to prepare content in advance and have it go live at the optimal time without manual intervention.

Configurable Blog Timezone

You can now set your blog's timezone to match your local time or any timezone you prefer. This is particularly important for scheduled posts to ensure they publish at the time you expect.

Internal Tags (Beta)

Internal tags allow you to organize and categorize your content without those tags appearing publicly in your theme. This feature is perfect for content management and internal workflows.

Custom Notifications

Ghost now supports custom notifications from the UpdateCheck service, allowing the Ghost team to communicate important information directly to users through the admin interface.

Maintenance Mode

A new maintenance mode has been added to provide better user experience during upgrades and migrations. This includes proper 503 error responses and messaging.

Security Updates

Referrer Policy Update

Changed the meta referrer policy from origin to origin-when-cross-origin to improve in-site analytics while maintaining security. This policy is now also configurable via the referrerPolicy option in config.js.

Performance Improvements

Database Migrations

Improved the migration process by running each database version as a top-level transaction and ensuring migrations run in the correct order.

Default Post Ordering

Changed the default order of posts to: scheduled, draft, published, which provides a more logical workflow.

Improved Error Handling

Better error handling for both visitors and admin users during upgrades and maintenance periods.

Impact Summary

Ghost 0.9.0 represents a significant step forward in content scheduling and organization capabilities. The addition of scheduled posts addresses one of the most requested features, giving publishers the ability to plan and automate their content calendar. The configurable timezone feature ensures that scheduling works correctly regardless of server location.

The internal tags feature (in beta) provides a powerful new way to organize content without affecting the public-facing site, which is particularly valuable for larger blogs and publications with complex workflows.

Several critical bugs have been fixed, most notably the issue where editing a post via the API could inadvertently delete all tags. The improved session handling will reduce frustration for users on less reliable connections.

The shift to recommending Node.js v4 aligns Ghost with more modern JavaScript practices and should provide performance benefits. The improved error handling during upgrades and maintenance periods will make the platform more robust and user-friendly during these critical operations.

Overall, this release enhances Ghost's capabilities as a professional publishing platform while addressing key pain points reported by the community.

Full Release Notes

Please read the release blog post for more details.

Highlights

  • [New] Scheduled posts - tell Ghost to publish your post sometime in the future 🕑
  • [New] Configurable blog timezone - super important for making scheduled posts work the way you expect.
  • [New] Internal tags (Beta) - use tags for managing content without them appearing in your theme
  • [Improved] Install & upgrade process by removing dependency on semver which regularly broke npm
  • [Improved] Better error handling for visitors and admin users whilst performing upgrades
  • [Fixed] "Access Denied" errors when uploading images
  • [Fixed] Editing a post via the API without providing a tags list would delete the post's tags 😱
  • [Fixed] Problems running in nested sub-directories, e.g. mysite.com/my/blog
  • [Fixed] Session handling on intermittent connections - it should now be easier to stay logged in
  • [Changed] Referrer policy changed from origin to origin-when-cross-origin to improve in-site analytics
  • [Changed] Node v4 is now the recommended node version for running Ghost 🎉
  • And much more...

The full change log contains a list of all changes.

Statistics:

File Changed300
Line Additions201
Line Deletions19,142
Line Changes19,343
Total Commits242

User Affected:

  • Can now schedule posts to be published automatically at a future date and time
  • Can use internal tags to organize content without them appearing publicly
  • Will experience fewer issues with image uploads

Contributors:

greenkeeperio-botkevinansfieldacburdineErisDSaileenkirrg001jaswillisebgiecobbspurjuanpacosakulstragergelykezhenkyleeexitvkandy