About four years ago we launched Ghost on Kickstarter as a tiny little prototype of an idea to create the web's next great open source blogging platform.
In the early days we really just focused on just making everything work. Ghost was one of the very first open source Node.js applications, and it certainly came with a steep learning curve. Our first release was Ghost 0.3 in September 2013, and since then there have been a total of 99 releases, all the way up to Ghost 0.11.9.
In that time we've watched as the Ghost ecosystem has grown and flourished. From some of the web's best loved startups like Square and Tinder, to some of the world's most important organisations like Elon Musk's OpenAI and Mozilla. Ghost even made a very brief appearance in this season of HBO's Silicon Valley.
Today marks our 100th release of Ghost and, fittingly, it's Ghost 1.0.0
This release contains over 2,600 commits of features, refactors, improvements, and fixes to make the entire codebase more robust and more reliable all-round.
A new editor
The headline feature of Ghost 1.0 is a brand new editor, and it's one that we're incredibly excited about, because we think it paves the way toward one of the most powerful publishing experiences on the web.
Ghost has always been known and praised for its simple, yet powerful Markdown editor, which allows for a great writing experience alongside easy document formatting.
Our new editor offers a tremendous upgrade to that experience, with a cleaner design, a new toolbar, support for Markdown tables, CommonMark, Github-flavoured Markdown and multiple view options depending on whether you prefer a focused single column or a side-by-side preview.
While this is already a significant upgrade over the previous writing experience, there's a whole lot more going on behind the scenes.
The truth is that Ghost 1.0 doesn't just have one new editor. It has two.
Let me explain:
Improving Ghost's Markdown editor has always been high on our list of priorities, but for a long time we've wanted to do more. Modern publications aren't just text based, they're comprised of diverse, dynamic elements from photographs to videos, detailed charts and rich embeds. We wanted to build something entirely new which would support all of those use-cases, and be extensible for new types of content in the future.
New-age WYSIWYG editors are a dime-a-dozen these days. Everyone and their dog seems to have a fancy document editor, but all of them suffer from the same fundamental problem: A fragile (or non-existent) underlying document storage model, which means that no matter how good they look, they fall apart pretty quickly.
Back in 2015 we started talking to Matt and Cory from the Ember.js core team, who had started building a portable JSON-based document storage format called MobileDoc as a part of a long term project for Bustle.com - one of the web's most successful modern publishers. MobileDoc is unique as an open standard which can store dynamic nested blocks of content in a sane manner, and translate their output into a variety of formats.
For almost two years we've been building a powerful block-based editor on top of MobileDoc - which is included in Ghost 1.0 for the first time. We're calling it Koenig.
The secret is that the upgraded Markdown editor is just a content block within the new Koenig editor:
Ghost 1.0 and its upgraded Markdown editor is the first step toward a much more powerful writing experience. Over the rest of the year we'll be adding support for more content types, and making them extensible so developers can create their own.
Here's a very simple, early demo of where we're going next with the Koenig editor later this year:
But wait there's more!
A refreshed UI
We've given Ghost admin a fresh lick of paint, tidied up the settings area, re-jigged buttons, a better publishing workflow, and many other small visual improvements.
Oh, and you can also filter the content screen now by post state, tag and author - so it's way easier to sort through large archives of content.
A new default theme design
Casper, our default theme, has now reached its 2.0 milestone and has a shiny new look to celebrate the occasion. This new layout was designed to accommodate all the new Ghost features we've released over the last few years, and provide a more flexible/customisable base for most publications.
Night shift mode
New in beta, a night shift mode to reverse the colours of Ghost admin for a gentler experience on the eyes when working in dim lighting. (Or just feeling like you're writing code)
As well as a publication logo Ghost now also supports publication icons; handy for a smaller square logo to be used with theme UI and as a site favicon.
A whole lot more
There are huge number of changes and improvements to enjoy.
- A brand new importer which works a lot better than the old importer.
- Google AMP is now optional rather than always-on.
- Custom redirects can now be set via a config file.
- Users can be suspended if required.
- Collision detection, so if two people are editing a post at the same time they won't override each other. That was, um. Not ideal.
- A new tour feature for new Ghost users to find their way around.
There are also a huge number of changes for developers in Ghost 1.0, which we've covered over on the developer blog. There are important breaking changes to the theme API.
How to upgrade to Ghost 1.0
This is our first major release which breaks backwards compatibility, so the upgrade process is more involved than usual.
If you don't have a Ghost site: Try it out for free with our 14 day trial on Ghost(Pro). All new sites automatically run on Ghost 1.0.
If you have an existing Ghost(Pro) site: The upgrade process will be mostly automated for you, with a couple of steps. We're upgrading people in batches over the coming weeks and once your account is ready to be migrated, you'll see an "Upgrade to Ghost 1.0" button when you log into Ghost.org, with instructions for what to do next.
If you self-host Ghost: You will need to set up a new Ghost 1.0 install, and export/import your content over. We've put together a full migration guide which should help.
Because the upgrade process is more complex this time around, we've marked Ghost 0.11 as a Long Term Support (LTS) release. We will continue to provide maintenance and security updates for Ghost 0.11 for the next 6 months.
What's coming next
Ghost 1.0 was an incredibly long and complex release cycle. It took us almost a full year, and things have been pretty quiet around here since then. We learned a lot from it, but we're planning on going back to smaller and much more frequent (SemVer) releases from here on in.
Also, hello from Dubai! We've got the whole Ghost team here finalising this release and working hard to make sure it's a good one :) We're going to record a little Ghost 1.0 Release podcast tomorrow, so let us know in the comments if you have any questions - and we'll discuss them IRL!
In the mean time, could we ask for your help to share the news? Here's a pre-written status to make it extra simple:
Just launched! 👉🏼 Ghost 1.0 - A brand new editor, updated design, and ludicrous improvements all round. https://blog.ghost.org/1-0/
Please enjoy these 1-click buttons for Ultimate Efficiency™️, or of course you can also just copy/paste if that's more your thing.
We're also answering questions over on ProductHunt right now!