Public Dev Meeting 25th October

Quick Summary Ghost 1.0.0.alpha.6 [https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.6] and Ghost-CLI 1.0.0-alpha.5 [https://github.com/TryGhost/Ghost-CLI/releases/tag/1.0.0-alpha.5] were released. Progress Report * Node v6 officially supported - #7623 [https://github.com/TryGhost/Ghost/pull/7623] * New editor layout - #7619 [https://github.com/TryGhost/Ghost/pull/7619], #355 [https://github.com/TryGhost/Ghost-Admin/pull/355] * Logging improvements - #7597 [https://github.com
Public Dev Meeting 18th October

Quick Summary Ghost 1.0.0.alpha.5 [https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.5] and 0.11.2 [https://github.com/TryGhost/Ghost/releases/tag/0.11.2] were released. Progress Report * OAuth improvements/fixes - #7547 [https://github.com/TryGhost/Ghost/pull/7547], #7550 [https://github.com/TryGhost/Ghost/pull/7550], #335 [https://github.com/TryGhost/Ghost-Admin/pull/335] * Migration improvements - #7545 [https://github.com/TryGhost/Ghost/pull/7545], #7565 [https://git
Ghost 0.11.2
Ghost 0.11.2 is now available on GitHub, npm and Ghost.org. This contains a fix for a memory leak + a few minor tweaks, including an update to Casper.
Highlights
- [Fixed] The memory leak is really actually gone this time 🤐
- [Fixed] Removed deprecated body classes from Casper 🙅🏽
- [Fixed] Allow database migrations to run if the active theme is not present 🐛
- [Security] Prevent bad urls from being passed to the subscribers page 🚫
- And several dependency updates
You can see the full change log for the details of every change included in this release.
In Detail
All currently deprecated functionality will be removed in Ghost 1.0.0. This release contains a version of Casper that has been updated accordingly (we thought we had done this ages ago 😳). There will be a more thorough blog post on all the planned 1.0.0 theme changes soon, but in the meantime we are adding changes to the 1.0.0 Theme changelog as we go.
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.11.2 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.11.2 and then check out the upgrade documentation over on our support site.
Enjoy!
Credits
This release was lovingly crafted by Hannah Wolfe 🙋🏻.
Public Dev Meeting 11th October

Quick Summary Ghost 1.0.0.alpha.4 [https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.4] was released. Progress Report * Theme upload improvements - #7490 [https://github.com/TryGhost/Ghost/pull/7490] * Migration and database improvements - #7498 [https://github.com/TryGhost/Ghost/pull/7498], #7499 [https://github.com/TryGhost/Ghost/pull/7499], #7501 [https://github.com/TryGhost/Ghost/pull/7501], #7531 [https://github.com/TryGhost/Ghost/pull/7531], #7538 [https://git
Public Dev Meeting 4th October

Quick Summary Ghost 0.11.1 [https://github.com/TryGhost/Ghost/releases/tag/0.11.1] was released along with 1.0.0-alpha.3 [https://github.com/TryGhost/Ghost/releases/tag/1.0.0-alpha.3]. Progress Report * Ghost OAuth - #278 [https://github.com/TryGhost/Ghost-Admin/pull/278], #7451 [https://github.com/TryGhost/Ghost/pull/7451], #7475 [https://github.com/TryGhost/Ghost/pull/7475] * New Editor - #299 [https://github.com/TryGhost/Ghost-Admin/pull/299], #7474 [https://github.com/TryGhost/Gh
Ghost 0.11.1
Ghost 0.11.1 is now available on GitHub, npm and Ghost.org. This is maintenance release that includes an important fix to the date migration logic - self-hosters please see the upgrade notes below. This will be the final release of Ghost that supports Node.js v0.10.
Highlights
- [Fixed] Theme refreshes on activation && override, so that Ghost(Pro) users don't get stuck in a cache-based-purgatory ♻️
- [Fixed] Logic around date migrations, which caused some people with SQLite3 to not get migrated yet ⏱
- [Fixed] Error when trying to delete a user that has posts 📚
- [Fixed] Messaging around account locking 🔐
- [Improved] Initial database creation now happens in a transaction 🎉
You can see the full change log for the details of every change included in this release.
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.11.1 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.11.1 and then check out the upgrade documentation over on our support site.
Special Upgrade Notes:
If you're on Ghost 0.9.0-0.11.0 and you're using SQLite3, your dates may not have been migrated properly. This release contains a special fix to try to resolve this problem. Therefore, when you run this upgrade, you should use npm start --production to start Ghost the first time, wait for the migration to finish, save the output somewhere safe, and then start Ghost using your normal method.
Currently, the recommended upgrade path is:
- If you're on 0.4.2-0.7.0, upgrade to 0.7.1
- If you're on 0.7.1+, upgrade to 0.11.1
The upgrade to 0.11.1 can take time, especially if you have a lot of data. Your blog will run in migration mode whilst the migration is running.
Once the date migrations are working, there will be no further database changes in the LTS version of Ghost.
Enjoy!
Credits
This release was lovingly crafted by Hannah Wolfe, Katharina Irrgang, Kevin Ansfield, John O'Nolan, Cezary Kluczyński and Austin Burdine.
Public Dev Meeting 27th September

Quick Summary New installer for Ghost and a new editor. Also released 1.0.0-alpha.2. Progress Report * Fixes for theme upload feature - #7424 [https://github.com/TryGhost/Ghost/pull/7424], #7430 [https://github.com/TryGhost/Ghost/pull/7430] * Moving from Grunt to Gulp - #7407 [https://github.com/TryGhost/Ghost/pull/7407], #7428 [https://github.com/TryGhost/Ghost/pull/7428], #7439 [https://github.com/TryGhost/Ghost/pull/7439] * Work towards the new editor - #7437 [https://gi
Dropping Support for PostgreSQL
Adding a long-term support strategy for Ghost v0.11, and focusing on an all new, backwards-incompatible Ghost v1.0 has given us an exciting opportunity to fix some our biggest development pain points.
PostgreSQL support was added organically by several contributors who showed up in the early days, raised bugs, fixed bugs, got a build added to travis, and did QA to ensure that Postgres worked. At a certain point, it seemed natural to say we supported it.
Since then, it has become one of our biggest difficulties when developing new features, second only to our permissions system.
There was a comment in the early thread advocating support about how having "official support" earlier would prevent Postgres being a second-class citizen. The logic was sound, but in practice this hasn't been true.
The Ghost team use Sqlite3 for development, and Ghost(Pro) uses MySQL - meaning we're running tens of thousands of blogs on MySQL all day every day. Bugs and opportunities for improvement in those two databases are found and handled quickly. We are able to guarantee first-class support for MySQL in a way we have never been able to for Postgres.
Over time we've reached a point where we no longer have any active core team members or regular contributors that use Postgres in production. No one using Postgres is contributing to code or to QA. We miss things because we aren't using it. Bugs get raised by the community, but they don't get fixed.
Postgres is a particular challenge because it is quite different to MySQL and SQLite. Code that automatically works for MySQL & SQLite often needs special modifications for Postgres, meaning it is time consuming and hard to maintain. Knex's abstractions just aren't doing the job well enough.
Without active community support, Postgres has always been, and always will be a second-class citizen. For that reason, we are dropping official Postgres support from Ghost core.
Moving forward
From Ghost 1.0 we're going to be officially throwing our weight behind MySQL. Although SQLite will still be available for development (and particularly useful for developing themes and apps), we'll be recommending MySQL for production Ghost installs. We'll be actively optimising, improving and tweaking bits of the data model to make sure that MySQL works as well as it possibly can.
By narrowing our focus on just one database, we'll be able to provide a much better, more optimised and efficient Ghost ⚡️.
We're also streamlining our development efforts, so we can spend our time on building the tools our users need to build awesome online publications. Supporting lots of databases was a nice idea in principle, however in practice being a jack of all databases makes us a master of none.
None of this precludes us from ever supporting Postgres again in future, if demand and contributions warrant it. For now, we believe this is what's best for the project.
Ghost 1.0 & LTS
Exactly 3 years ago to the day, we released the very first version of Ghost (v0.3) to Kickstarter backers. It was basic and it was flawed in many ways, but it was beautiful and it got us to where we are now. Today, we're announcing a huge milestone of Ghost v1.0-alpha, and Ghost v0.11-LTS.
This represents the end of the road for the first development cycle of Ghost. We've achieved almost everything we set out to build from the early days, and now it's time to embark on a new (SemVer-compliant) adventure.
So how's this all going to work?
Ghost 0.11-LTS
Starting from today, Ghost 0.11 is our official Long Term Support (LTS) branch. We'll keep shipping bug fixes and security patches for Ghost 0.11.0 for the next 6 months, officially dropping support on the 20th of March 2017.
Meanwhile...
Ghost 1.0
We're starting work on Ghost 1.0, which is currently in alpha state, and will be heavily developed over the next couple of months toward a first official release. There are going to be some major changes, including...
A totally overhauled install+update process with an official Ghost-CLI and a configuration system based on nconf, supporting files, env vars and cli flags. It's going to be more awesome than kittens with lasers, and will enable us to build 1-click updates right into Ghost.
An official Ghost OAuth login system. You will have 1 login which gives you global access to all of your Ghost blogs, no matter where they're hosted. We'll also be able to add 2-factor auth, and all sorts of things which we couldn't do previously to streamline the user experience.
A brand new Ghost editor, which will be fully extensible and an enormous leap forward from our beloved (but somewhat long-in-the-tooth) Markdown editor. The writing experience is going to be dramatically better!
Behind these changes will be a full rewrite of our database model and a new focus on optimising for MySQL as the default production env. We'll be making huge improvements to how themes are installed and managed and we're also going to rebuild all of our tooling to make theme creation and contribution much easier again.
As you can imagine, it would be tough to make these big changes without breaking things, so we're also announcing that Ghost 1.0 will not be backwards compatible and releases from this point onwards will be fully SemVer compliant.
Over the coming weeks, we will be sharing more details of what's to come. It's going to be an exciting couple of months! If you're interested in contributing, we'd love some help.
Public Dev Meeting 20th September

Quick Summary Released 0.11.0 and working towards the 1.0.0 alpha release. Progress Report * AMP improvements - #7370 [https://github.com/TryGhost/Ghost/pull/7370], #7374 [https://github.com/TryGhost/Ghost/pull/7374], #7353 [https://github.com/TryGhost/Ghost/pull/7353] * Re-run migration for those who ran into database problems when upgrading to 0.10.0 - #7323 [https://github.com/TryGhost/Ghost/pull/7323] * Theme upload improvements - #7380 [https://github.com/TryGhost/Ghost/pull
Ghost 0.11.0
Ghost 0.11.0 is now available on GitHub, npm and Ghost.org. This release contains mostly bug fixes, with an important data migration for blogs that didn't have their dates migrated correctly during the 0.9.0 upgrade.
Highlights
- [Fixed] Typing a space in the search bar no longer completes the search 🔍
- [Fixed] Date migrations for sqlite3/postgres blogs that were running in UTC 🕓
- [Fixed] AMP and previews now work properly when running Ghost in a subdirectory.
- [Fixed] Scheduling now works when blogs are run in a subdirectory ⏰
- [Fixed] Internal tags no longer appear in meta data or RSS feeds.
- [Fixed] More fixes for theme uploads causing unsupported type errors when they shouldn't 🐛
- [Fixed] Uploading over the top of an active theme now correctly reloads the theme & clears the cache 💥
- [Fixed] Issue with
lodashwhen Ghost installed as an npm module. - [Fixed] Sitemaps were sometimes rendering without any content 🔦
- [Changed] Downgraded missing
{{asset}}helpers in themes to a warning so they can still be used with caution. - And other things...
You can see the full change log for the details of every change included in this release.
In Detail
This is the penultimate release of Ghost that will work with Node.js v0.10. Please take some time in the next 2 weeks to upgrade. More information can be found in this blog post.
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.11.0 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.11.0 and then check out the upgrade documentation over on our support site.
Enjoy!
Note: Due to the dependency changes in the last releases, it may be necessary to remove the node_modules folder, clear the cache and do a fresh npm install i.e. run rm -rf node_modules && npm cache clear && npm install --production. This is also described in the upgrade troubleshooting guide.
Credits
This release was lovingly crafted by Hannah Wolfe, Katharina Irrgang, Austin Burdine, Aileen Nowak, Ryan McCarvill, David Wolfe, Sebastian Gierlinger and Kevin Ansfield.
End of Node.js v0.10 support
On the 1st October the Node.js Foundation will end support for Node.js v0.10.
Ghost has been committed to following the Node.js LTS schedule since it was announced last year, as documented in our supported version guide. On 30th September, we will release the final version of Ghost which will work with v0.10 and on 1st October we will release a version with v0.10 support removed.
Back in July we announced that our recommended version for running Ghost had changed to Node.js v4. We highly recommend that all of our users upgrade their Node.js versions as soon as possible. More details on how to upgrade (and why) can be found in the original Node.js v4 blog post.
Support for Node.js v0.12 will be removed in a similar fashion on 31st December.
Public Dev Meeting 13th September

Quick Summary Ghost 0.10.1 was released fixing bugs in 0.10.0. Progress Report * Configuration refactor - #7342 [https://github.com/TryGhost/Ghost/pull/7342], #7344 [https://github.com/TryGhost/Ghost/pull/7344], #7347 [https://github.com/TryGhost/Ghost/pull/7347] Discussion * Currently working on fixing outstanding bugs and releasing 0.11.0 later this week. The full logs of the meeting [https://ghost.slack.com/archives/dev/p1473784256000259] can be found in our Slack logs. What i
Ghost 0.10.1
Ghost 0.10.1 is now available on GitHub, npm and Ghost.org. This is a bug fix release, which resolves some gnarly issues with 0.10.0.
Highlights
- [Fixed] Uploads & imports on Windows - sorry about that 😳
- [Fixed] Memory Leak ☔️ - downgrading bookshelf & knex solves this, we're still looking for the exact culprit
- [Fixed] AMP pages with missing images now fallback gracefully
- [Fixed] AMP doesn't like old-school HTML attributes such as
border - [Fixed] Migrations from <0.7 to 0.10.1 will no longer throw an error
- [Fixed] Cannot find module... config.example error when starting Ghost after upgrading
- [Fixed] Multiple upgrade notifications - one is enough 😜
- And a few other bits & pieces...
You can see the full change log for the details of every change included in this release.
In Detail
The most important changes in this release are dependency updates for bug fixes, and dependency downgrades to try to resolve the memory issue. See the note in the How to Upgrade section about reinstalling npm modules.
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.10.1 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.10.1 and then check out the upgrade documentation over on our support site.
Enjoy!
Note: Due to the dependency changes in this release, it may be necessary to remove the node_modules folder, clear the cache and do a fresh npm install i.e. run rm -rf node_modules && npm cache clear && npm install --production. This is also described in the upgrade troubleshooting guide.
Credits
This release was lovingly crafted by Austin Burdine, Aileen Nowak, Hannah Wolfe, Katharina Irrgang and Kevin Ansfield.
Public Dev Meeting 6th September

Quick Summary A lot of bug fixes and final improvements before Ghost 0.10.0 was released. Progress Report * Bug fixes - #242 [https://github.com/TryGhost/Ghost-Admin/pull/242], #241 [https://github.com/TryGhost/Ghost-Admin/pull/241], #7306 [https://github.com/TryGhost/Ghost/pull/7306], #7308 [https://github.com/TryGhost/Ghost/pull/7308], #7329 [https://github.com/TryGhost/Ghost/pull/7329] * Fix theme upload bugs - #238 [https://github.com/TryGhost/Ghost-Admin/pull/238], #7293
Blazing fast mobile performance: AMP for Ghost
Ghost has already had great mobile performance from day one, with a responsive admin area and default theme - but now we’ve stepped that up a gear once more with full support for brand new Google Accelerated Mobile Pages.
What does all this mean for you? Ludicrous speed! Take a look at Troy Hunt’s story on the recent Dropbox hack, loading over 3G:

You can access the AMP equivalent version of any post on your blog by simply adding /amp to the end of any post URL. AMP versions are all generated for you, and there’s nothing you need to do![1] Here's the AMP version of this very post.
All Ghost blogs render a default AMP template, but of course this can be overridden at a theme level if you’d like to customise your colours, branding and typography. Here’s a tutorial on how to customise AMP for Ghost in your theme.
It’s still early days for AMP, Google is a little bit inconsistent about when it does/doesn’t decide to show an AMP version of a post in its search results - but we’re pretty excited about it all the same!
Ghost(Pro) users already have access to all of this right now, log in to your blog and have a look! Users running Ghost on their own servers can grab this feature by upgrading to Ghost 0.10.
Do be aware that at this early stage of AMP support there are a few things which can break it (like affiliate tracking embeds or other complex code which we can’t properly parse). ↩︎
Public Dev Meeting 30th August

Quick Summary A lot of bug fixes and final improvements before Ghost 0.10.0 was released. Progress Report * Bug fixes/code improvement - #7257 [https://github.com/TryGhost/Ghost/pull/7257], #7261 [https://github.com/TryGhost/Ghost/pull/7261], #7264 [https://github.com/TryGhost/Ghost/pull/7264], #223 [https://github.com/TryGhost/Ghost-Admin/pull/223], #222 [https://github.com/TryGhost/Ghost-Admin/pull/222], #144 [https://github.com/TryGhost/Ghost-Admin/pull/144], #225 [http
Ghost 0.10.0
Ghost 0.10.0 is now available on GitHub, npm and Ghost.org. It includes support for Google AMP (Accelerated Mobile Pages), as well as theme uploads within Ghost, and many fixes/improvements.
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] Ghost now uses a native system font stack in place of Google Fonts for a faster and more delightful experience.
- [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.
In Detail
This release contains two new features which require attention if you are a theme developer or use a custom storage adapter.
Storage Adapter Changes
Breaking Changes
If you have installed a custom storage adapter, you might not able to start your blog anymore, because with 0.10.0 we require a function set for custom storage adapters (save, exists, delete and serve). We've contacted all publishers to create a new version to support the changes.
The breaking changes to the Storage Adapter API are explained in detail on the wiki page. Swing by our slack channel if you have any questions!
Theme API Changes
AMP now works out of the box with a default template, which can also be overridden by themes. For full details of how to customise this feature, see the AMP theme documentation. Also watch this space for a custom AMP theme tutorial coming very soon!
Theme uploads are now handled inside of Ghost. If you upload a broken theme, we will tell you and provide a very detailed validation error output - this is done with the help of gscan. Theme developers can test out their themes by uploading them and viewing the report on http://gscan.ghost.org.
See the theme API docs for full details of what changed in Ghost 0.10.0. The theme documentation is frequently updated with more details and better examples. Please also use the suggest edits feature if you find something is missing or out of date.
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.10.0 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.10.0 and then check out the upgrade documentation over on our support site.
Enjoy!
Credits
This release was lovingly crafted by Aileen Nowak, Austin Burdine, Kevin Ansfield, Hannah Wolfe, Katharina Irrgang, David Balderston, John O'Nolan, Jesse Dijkstra, Misha Wakerman and Tim Walling.
Public Dev Meeting 23rd August

Quick Summary Pushing heavily towards the 0.10.0 for release this week. Progress Report * Bug Fixes and Code Cleanup - #209 [https://github.com/TryGhost/Ghost-Admin/pull/209], #213 [https://github.com/TryGhost/Ghost-Admin/pull/213], #212 [https://github.com/TryGhost/Ghost-Admin/pull/212], #7213 [https://github.com/TryGhost/Ghost/pull/7213], #7224 [https://github.com/TryGhost/Ghost/pull/7224], #7228 [https://github.com/TryGhost/Ghost/pull/7228], #7240 [https://github.com/Tr
Public Dev Meeting 16th August

Quick Summary * Initial version of AMP support merged! * Working towards a 0.9.1 release next week Progress Report * AMP Support - #7171 [https://github.com/TryGhost/Ghost/pull/7171], #7205 [https://github.com/TryGhost/Ghost/pull/7205], #7174 [https://github.com/TryGhost/Ghost/pull/7174] * Dependency Updates - #7201 [https://github.com/TryGhost/Ghost/pull/7201], #7200 [https://github.com/TryGhost/Ghost/pull/7200], #7198 [https://github.com/TryGhost/Ghost/pull/7198], #7197 [h
Public Dev Meeting 9th August

Quick Summary Fixing some bugs after the 0.9.0 release and working towards new features such as Google AMP support Progress Report * Continued progress on AMP support - #7157 [https://github.com/TryGhost/Ghost/pull/7157], #7153 [https://github.com/TryGhost/Ghost/pull/7153] * Bug fixes - #7180 [https://github.com/TryGhost/Ghost/pull/7180], #7169 [https://github.com/TryGhost/Ghost/pull/7169], #174 [https://github.com/TryGhost/Ghost-Admin/pull/174], #189 [https://github.com/TryGho
Scheduling your posts for future publication
You can now schedule posts in Ghost to be published at a predetermined date in the future! This is one of our most requested features of all time, so we're really happy to finally have it out in the wild 🙈.
It works just as you'd expect: Once you set a publication date in the future, you'll notice the publish button change from "Publish Post" to "Schedule Post". Hit that, and you're all set.

All Ghost blogs now also have a configurable time zone, rather being locked to UTC, and we've fixed a whole bunch of bugs which were tripping people up.
We're also working on checking off several more of the most-requested things from our ideas board. So do stop by and leave a vote for what you'd like to see next, if you haven't already. (Yes, AMP support is coming)
Ghost(Pro) users already have access to all of this right now, log in to your blog and have a look! Users running Ghost on their own servers can grab this feature by upgrading to Ghost 0.9.
Public Dev Meeting 2nd August

Quick Summary Ghost 0.9, and Ghost Desktop 0.6 were released! Progress Report * Code improvements and bug fixes - #7126 [https://github.com/TryGhost/Ghost/pull/7126], #7148 [https://github.com/TryGhost/Ghost/pull/7148], #7160 [https://github.com/TryGhost/Ghost/pull/7160], #7128 [https://github.com/TryGhost/Ghost/pull/7128], #7150 [https://github.com/TryGhost/Ghost/pull7150], #151 [https://github.com/TryGhost/Ghost-Admin/pull/151], #150 [https://github.com/TryGhost/Ghost-Ad
Ghost 0.9.0
Ghost 0.9.0 is now available on GitHub, npm and Ghost.org. Ghost 0.9.0 contains the long-awaited scheduled posts feature among other new features and bug fixes.
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
semverwhich 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
origintoorigin-when-cross-originto improve in-site analytics - [Changed] Node v4 is now the recommended node version for running Ghost 🎉
- And much more...
You can see the full change log for the details of every change included in this release.
In Detail
A major change for developers since 0.8 is that the ember admin client has been split into it's own repository. We're using git submodules as per the Casper dependency so after pulling down the core Ghost repo, run grunt init to update the submodules (you only need to do this once). If you want to make changes to the client you can then cd core/client where you can treat it as a normal git repository - it will be set up with origin pointing to Ghost-Admin by default so you'll want to rename that or add your own fork remote. Swing by our slack channel if you need any help getting set up.
New Timezone Feature
It's now possible to set the timezone of your blog - this should finally fix the "I posted at 3AM this morning but my post says says it was published yesterday" issues that arose from Ghost using the server's timezone which does not always match the blog owner's timezone.
In order to support customisable timezones and post scheduling this release contains a migration that will update all datetimes stored in the database to UTC. If your server timezone is already set to UTC there should be no change.
Upgrade notice: If you have a lot of data in your blog then the timezone migration may take a while, during this time visitors to your blog will see a "503 Under Maintenance" error and the admin panel will not be accessible. Keep an eye on your Ghost console logs to ensure that the migration completes successfully.
After upgrading please check and update the timezone setting in the General Settings screen - we use a best-guess method to set this during the migration process to avoid unexpected time changes but it may not match what you want.
Scheduling
The default scheduler uses an internal system to keep track of time. This should work for most cases, however those on infrastructure that isn't always running (e.g. Heroku) will need to use an external service for scheduling. This can be achieved by adding a custom scheduling adapter to Ghost & passing the scheduling requests to another service.
The Ghost wiki contains documentation for how to create your own scheduling adapter.
Theme API Changes
- Addition of
{{@blog.timezone}}
See the theme API docs for full details of what changed in Ghost 0.9.0. The theme documentation is frequently updated with more details and better examples. Please also use the suggest edits feature if you find something is missing or out of date.
Public API Changes
A couple of key bug fixes have been incorporated into 0.9.0:
- Querying the Post API and reducing the data returned by using
fields=title,urlwill no longer returnundefined - When using the
filterparameter it's now possible to filter by slugs starting with numbers without needing to escape them, e.g.filter=slug:5-minutes-to-midnight
How to Upgrade
All Ghost(Pro) users are being automatically updated and will be running Ghost 0.9.0 shortly. You're welcome :)
For people running Ghost on their own servers, you can download Ghost 0.9.0 and then check out the upgrade documentation over on our support site.
Enjoy!
Credits
This release was lovingly crafted by Kevin Ansfield, Katharina Irrgang, Austin Burdine, Hannah Wolfe, Aileen Nowak, Lukas Strassel, Vijay Kandy, cobbspur, Joris Berthelot, zhenkyle, Gergely Nemeth, Ethan Garofolo, starcwl, and Felix Rieseberg.
Public Dev Meeting July 26th

Quick Summary Continuing work for the upcoming 0.9 release. Ghost officially recommends Node.js v4 LTS [https://dev.ghost.org/node-4/]. Progress Report * Code improvements and bug fixes - #7032 [https://github.com/TryGhost/Ghost/pull/7032], #6950 [https://github.com/TryGhost/Ghost/pull/6950], #7042 [https://github.com/TryGhost/Ghost/pull/7042], #7121 [https://github.com/TryGhost/Ghost/pull/7121], #7147 [https://github.com/TryGhost/Ghost/pull/7147], #136 [https://github.com/Tr