Home

>

Tools

>

Ghost

>

Releases

>

0.10.0

Ghost Release: 0.10.0

Tag Name: 0.10.0

Release Date: 8/29/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.10.0: AMP Support, Theme Management, and Storage Improvements

Ghost 0.10.0 introduces significant new features including AMP (Accelerated Mobile Pages) support for optimized mobile content delivery and comprehensive theme management directly within Ghost. This release also includes important storage adapter changes (breaking), improved user deletion workflow, better cross-browser compatibility, and various security and performance fixes. The update focuses on enhancing content delivery speed, improving the admin experience, and providing more robust theme handling capabilities.

Highlight of the Release

    • AMP (Accelerated Mobile Pages) support for optimized mobile content delivery
    • Built-in theme upload, download, and delete functionality
    • Breaking changes to storage adapters requiring specific methods
    • Improved user deletion process with clear content impact visibility
    • Changed default referrer policy to no-referrer-when-downgrade for Safari compatibility
    • Better cross-browser support with editor now working in IE Edge
    • Fixed timezone handling for published dates
    • Security fix for open redirect vulnerability
    • Internal tags no longer appear in sitemap

Migration Guide

for Ghost 0.10.0

Breaking Changes for Custom Storage Adapters

If you're using a custom storage adapter, you'll need to update it to include the following required methods:

// Required methods for custom storage adapters
save(image, targetDir)
serve(options)
delete(fileName, targetDir)
exists(fileName, targetDir)

All of these methods are now mandatory for your storage adapter to work with Ghost 0.10.0. If your adapter doesn't implement these methods, your Ghost instance will not start.

Theme Development for AMP

If you want to customize the AMP experience:

  1. Create an amp.hbs template in your theme
  2. Use the new AMP helpers:
    • {{amp_content}} - Transforms post content to AMP-compatible HTML
    • {{amp_component}} - Adds required AMP component scripts
    • {{amp_ghost_head}} - Adds required AMP metadata

Storage Configuration

Ghost now supports separate storage adapters for images and themes:

storage: {
  active: 'my-custom-storage',
  'my-custom-storage': {
    images: {...},
    themes: {...}
  }
}

For most users, no changes are needed as the default local file storage will be used.

Upgrade Recommendations

Who should upgrade immediately:

  • Users who want to take advantage of AMP support for better mobile performance
  • Anyone using custom themes who wants the new theme management capabilities
  • Sites experiencing issues with date handling or Safari referrer policy

Who can delay upgrading:

  • Users with custom storage adapters should test thoroughly before upgrading production sites
  • Sites with heavy customizations should test the upgrade in a staging environment first

Upgrade process:

  1. Backup your database and content before upgrading
  2. If using a custom storage adapter, update it to include all required methods
  3. Update Ghost using your preferred method (Git, Docker, etc.)
  4. Verify your theme works correctly with the new version
  5. Test AMP functionality by visiting any post with /amp/ appended to the URL

The upgrade is recommended for most users due to the significant new features and security improvements, but those with custom storage adapters should be aware of the breaking changes.

Bug Fixes

  • Date Handling: Fixed the date helper to correctly generate published dates based on the blog's timezone setting
  • Sitemap Generation: Internal tags are no longer shown in sitemap-tags.xml
  • Security: Fixed an open redirect vulnerability by removing double slashes from redirects
  • Referrer Policy: Changed default referrer policy to no-referrer-when-downgrade to ensure compatibility with Safari
  • Duplicate Notifications: Fixed issue with duplicate notifications appearing in the notification store
  • Static Page Routing: Ensured static page edit route correctly redirects to the editor
  • App Routes: Fixed routing priority so that app routes (like /private/ and /subscribe/) take precedence over content with the same slug
  • Media Rendering: Fixed small media types (images, GIFs) stretching in AMP pages
  • Config Overwriting: Fixed issue where config.theme.timezone and config.theme.title were being incorrectly overwritten
  • File Import: Added proper validation for CSV file imports, checking both file type and extension
  • ZIP File Upload: Added support for .zip file uploads in the labs section

New Features

AMP Support

Ghost now includes built-in support for Accelerated Mobile Pages (AMP), Google's open-source initiative to make mobile pages load faster. Posts are automatically available in AMP format at /:slug/amp/. The implementation includes:

  • New AMP-specific template (amp.hbs) for rendering AMP-compatible content
  • Helper functions for AMP content: {{amp_content}}, {{amp_component}}, and {{amp_ghost_head}}
  • Automatic conversion of standard HTML to AMP-compatible markup
  • Image dimension detection for proper AMP rendering
  • Canonical link relationships between standard and AMP versions

Theme Management

Ghost now provides comprehensive theme management directly within the admin interface:

  • Upload new themes via the admin UI
  • Download existing themes as ZIP files
  • Delete themes that are no longer needed
  • Theme validation using GScan to ensure compatibility
  • New theme-related permissions and API endpoints
  • Theme events for uploaded, downloaded, and deleted themes

Storage Adapter Improvements

The storage system has been enhanced with:

  • Separate storage adapters for images and themes
  • Better validation of custom storage adapters
  • Improved error handling for storage operations
  • ZIP file handling using node-archiver instead of system commands

Security Updates

  • Open Redirect Vulnerability: Fixed a security issue where double slashes in URLs could create an open redirect vulnerability. The fix removes double slashes from paths to ensure redirects cannot be exploited.
  • Referrer Policy: Changed the default referrer policy to no-referrer-when-downgrade to improve security while maintaining compatibility with Safari.
  • File Upload Validation: Added more robust validation for CSV file imports, checking both file type and extension to prevent potential security issues.

Performance Improvements

  • Native Font Stack: Switched from Google Fonts to a native system font stack, reducing HTTP requests and improving page load times
  • AMP Support: Added AMP support for significantly faster mobile page loading
  • Image Handling: Improved image dimension detection and caching for better performance
  • URL Processing: Optimized handling of relative URLs for better performance in various contexts
  • Temporary File Management: Improved handling of ZIP files by storing them in the OS temporary directory rather than the content/themes folder

Impact Summary

Ghost 0.10.0 represents a significant step forward in content delivery optimization and admin functionality. The addition of AMP support dramatically improves the mobile experience by delivering faster-loading, optimized content to mobile users. This feature alone could have meaningful impact on SEO, user engagement, and bounce rates for content-heavy sites.

The new theme management capabilities transform how Ghost users work with themes, eliminating the need for FTP or command-line access to change themes. This makes Ghost more accessible to less technical users while giving developers better tools for theme deployment.

The breaking changes to storage adapters, while potentially disruptive for developers using custom storage solutions, establish a more consistent and reliable API for future development. This standardization will lead to more robust integrations and fewer compatibility issues in the long run.

Security improvements, particularly the fix for open redirect vulnerabilities, protect both site owners and users from potential exploits. The switch to native system fonts improves performance while maintaining a professional appearance across all devices.

Overall, this release balances new features with important infrastructure improvements, setting the stage for Ghost's continued evolution as a modern publishing platform.

Full Release Notes

Please read the release blog post for more details.

Note: This release contains breaking changes for custom storage adapters - see https://github.com/TryGhost/Ghost/wiki/Using-a-custom-storage-module. If you are using a custom storage adapter your blog might not start before you update your custom storage adapter to a newer version, which supports our breaking changes.

Highlights

  • [New] AMP (Accelerated Mobile Pages) - deliver optimised content for mobile users
  • [New] Theme upload, download & delete - theme management is now part of Ghost
  • [Improved] Deleting a user now clearly highlights any post content that will be deleted
  • [Improved] Default referrer policy has changed to no-referrer-when-downgrade - works now in Safari
  • [Improved] Cross Browser Support - The editor now works in IE Edge
  • [Fixed] Date helper now generates correct published date based on blog timezone
  • [Fixed] Internal tags are not shown in sitemap-tags.xml anymore
  • [Fixed] Security Issue: Open redirect
  • [Changed] Storage adapters now require save, delete, serve, exists methods (Breaking Change)
  • And much more...

You can see the full change log for the details of every change included in this release.

Statistics:

File Changed142
Line Additions6,131
Line Deletions1,881
Line Changes8,012
Total Commits62

User Affected:

  • Need to update custom storage adapters to include required methods (save, delete, serve, exists)
  • Can now implement AMP support in themes
  • Can leverage new theme management API endpoints
  • Benefit from improved error handling for storage adapters

Contributors:

greenkeeperio-botkirrg001acburdineaileentwallingmwakermanErisDSJohnONolanjessedijkstra