👋 Hey Product Hunters!
This is the 3rd major iteration (the first was 0) of the Ghost open source publishing platform. There’s a blog post linked above which talks about everything new and shiny included in this release, but I thought I’d share a bit more of the product story here for people who are interested in how the sausage gets made (can’t believe there’s no sausage emoji tbh)
👻 The Backstory
Ghost launched in 2013 on Kickstarter as a new take on the traditional blogging platform. The difference: Deeply focused on publishing (rather than generic website-building), blazing fast modern codebase, fully open source permissive MIT license, with a sustainable business model, structured as an independent non-profit organisation. To date, there’s still not a single other platform which offers all those things in one place!
We've done about 200 releases, several million downloads, seen 500,000 sites running on Ghost (Including Apple, Tinder, DuckDuckGo, Mozilla, OpenAI and many more) — and the software has matured a long way since the early the days. v2.0 is quite a departure, in many ways, from some of the initial principles which we started out with.
The way we make product decisions has definitely evolved 👇🏼
I mentioned in our 5 year anniversary post - https://blog.ghost.org/5/ - that one of the biggest lessons we’ve learned over time is that open/decentralised products fundamentally compete on power and flexibility, rather than outright simplicity. So while Ghost started out as an attempt to be as simple as possible, 2018 for us has been all about opening things up with more power.
We’re moving away from “markdown-only” and “a single stream of posts -only” as the way to write and read posts in Ghost - in two major ways:
✍️ We’ve shipped a rich, extensible editor which you could loosely think of as “Medium meets Slack-Integrations, built on an open document storage format” — the likes of which exists nowhere else in open source.
🏠 And we’re enabling full site-structure control, meaning entirely new architectures, formats and collections of content are possible. Use whatever custom homepages, subdirectories, or route structures you want.
All of this represents a very conscious move to stay true Ghost’s core focus of publishing but make it more suitable to professional users who need more than just simple blogging :)
📢 Will be hanging around here all day if anyone has any questions
@johnonolan Great work again!
@johnonolan Can content that was created on v1 be exported and imported to v2?
@alex_vernacchia absolutely! v1 is already using the same underlying document format as v2 except that all of the content is in a single markdown card. If you import v1 content into v2 you'll see your content inside a markdown card in the new editor.
But! If you are upgrading from v1 to v2 there's no need to export and re-import like that was with the v0->v1 migration. It should be as quick as running `ghost update` 😄
If you're trying to convert your markdown content to the new rich-text editing experience there are two options if you aren't using any custom html inside your markdown:
1. Copy the markdown text from the markdown card and paste it into the rich-text area of the new editor, it will automatically convert any pasted markdown for you
2. Copy the rendered content from your publication's front-end and paste that into the new editor, it will automatically convert pasted rich-text/html content for you
@johnonolan very happy Ghost pro client at fomo.com.
question, can we configure redirects, ie `/old-post` to `/new-post`. this would help us a lot with our SEO goals, to not lose backlinks.
@johnonolan HUGE congrats on this launch! It's looking absolute 🔥🔥🔥
@de Thanks so much Dan! 🤗
@ryanckulp Yes :) you can upload individual or pattern based redirects in a JSON file, details here: https://docs.ghost.org/docs/redirects
@johnonolan stellar, thanks!
@johnonolan Congrats on the release! Do you see yourselves as pushing into the headless CMS space with this release?
Anything new on the roadmap for making it easier for Wordpress people to jump ship to Ghost?
Again, great job. The new editor looks amazing.
@johnonolan Finally! I'm old fan from your Kickstarter days. I just updated my self hosted ghost to 2.0. It's literally a true cms I've been waiting for.
@johnonolan Congrats on the upgrade!
@ryanckulp Ghost supported redirects in 1.9. In Ghost Pro you'll find it at Labs → Redirects. You'll need to create a json file with your redirects. Docs are here: https://docs.ghost.org/v1/docs/redirects.
@rlvl Thanks Rudy!
@bkim9324 Glad to hear it :) thanks for the support!
@johnonolan @ryanckulp this is already possible. I've used this extensively after migrating my blog from Blogger to Ghost and written a post on the features and how I use them: https://jessehouwing.net/ghost-use-google-search-console/
@johnonolan @jessehouwing thanks Jesse + crew. apparently we were on < 1.0 but now 2.0 and rocking. will set up a bunch of redirects and appreciate the guide.
@johnonolan Ghost 2.0 looks fantastic! I was one of the original Kickstarter backers. Unfortunately, I never got around to using the product. :-(
Ghost has sure has come a long way since then. I love the Medium style editor with Dynamic Cards!
Can I still self-host Ghost?
@joseph_swenson Definitely becoming increasingly compatible with the headless paradigm. I think you'll find our next few releases interesting :)
Migration tools are hard (and fragile) but we're always looking for ways to improve them! If you're interested in getting involved there's definitely room for contributors in that department :D
@stephenchip Thanks for the support! Of course you can still self-host Ghost, all the details are on ghost.org :)
Wow, as expected the UX of your new editor looks great! I remember beta testing it when you first started working on the feature but it's come a long way.
I have some questions:
🗂 How far do you think you'll take cards? Are you going to stick to the writing experience first and foremost or are you going to iterate into the "site builder" space with these?
✏️ Content types are a welcome addition, is it easy for developers to integrate custom data into these types? Meta data like for example exif data for a photo content type?
🖼 Do you have any plans for new themes which support content types (or think this is something developers should look into building)?
@marcperel Hey Mr Marc! Great Qs
I think cards will evolve quite a bit, but the plan is for them to still feel like cards (ala Slack) and less for them to define layout (the pagebuilder approach). We'll need to see how people use and respond to it, but we're pretty keen on keeping the experience as focused as possible. A lack of focus in editors, in particular, typically just leads to a minefield of distractions.
Content types - not yet, it's very simple right now, but we're thinking about this. There's definitely a lot of interesting publishing use-cases for more custom data.
Themes are becoming more tightly coupled to site structure, now, and I think we'll actually continue to move slowly away from the idea of interchangeable themes over time. The more power and flexibility exists within the platform, the harder it is for a generic set of themes to all respond equally to core without including a tremendous amount of bloat.
Working on that last one, in particular, I think is going to be really interesting :)
Custom routing! I was actually just thinking about this last night and whether it's possible or not. Perfect timing. Excited to play around with it. Cheers John!
@ronald Hehe, thanks Ronald! Let us know how you get on :)
That awesome CMS I tried to implement instead the awful Wordpress at my job without any success :(
How do you see the future of journalism/publishing and the role of Ghost in that? You seem to have moved from being "a lightweight Wordpress" years ago to having a much bigger mission now.
I think you've mentioned becoming a platform for paid publishing: where journalists and writers can self-host (or through you) and accept Patreon-style subscriptions. Is that what's next?
@levelsio Excellent question! We've been working towards the next evolution here for a while now. While the first few years of Ghost was all about improving publishing, I think the next few are going to be pretty heavily focused on new business models for publishers. Finding new ways make revenue from publications is at a fairly critical juncture as the ad industry slowly disappears down the proverbial drain.
I'm a big believer in the subscription model used by Stratechery, TheInformation and De Correspondent - and I'm interested if we could facilitate that type of business model using Ghost in future.
Beyond that, in terms of what's coming next? Lots of API stuff, probably 🤩
Karl Oscar Weber
@levelsio @johnonolan I've got a question about that. In terms of apps and integrations, and the API that is required for that; How much of that is known/unknown? Does the team know what it is they want to build into the API? Has it been defined and scoped out? Or is it something that the team will experiment and discover.
But at present you haven't implemented any of the subscription model yet, right? We had this conversation months ago... What's the status, as opposed to handwavey 'someday, somehow' rhetoric?
@levelsio There’s a Patreon API. I haven’t tried to use it, but I thought I would mention it in case you wanted to check it out.
Congrats Ghost team!! Happy user for years here, and can't wait to dig into the new extensible editor of yours (could come in handy for our team ). Out of curiosity, why Slate, Draft or other js OSS editors were not good enough for you?
Keep up the great work!
Hey @christophepas 👋🏼 Interesting question!
When we started the journey to replacing our editor, Slate, Draft, Quill, etc were pretty small and/or non-existent. However Bustle had recently announced Mobiledoc/mobiledoc-kit and it looked like a good option for the storage format and filled the gap of an editor-building framework rather than a prescribed drop-in editor. In fact it looked so promising compared to the others available at the time that we adopted the mobiledoc format back in the Ghost 1.0 alpha days almost 2 years ago in preparation for this point 😄
The second and definitely a bigger factor was that mobiledoc-kit already had a very robust method of extension through cards. We really want to bring extensibility to the editor because publications are moving away from the traditional text+image format to include rich media experiences and sophisticated data analysis tools.
Finally, mobiledoc-kit also had a proven method of integration with Ember.js which is the JS framework that powers Ghost's admin area. This made adoption really smooth and should mean that we can build a powerful custom card framework for developers in the future.
If we were starting over now we'd definitely have more options available to explore but I'm fairly confident we'd end up with the same choice. Seeing the new crop of OSS editors pop up while we've been working on ours has been really encouraging, it's great to see movement and innovation in this space, plus competition in OSS helps everyone 🙌
@lookingsideways awesome thanks for the insights!
Congratulations! Koenig is amazing and dynamic routing is 👌. Some questions.
Will Koenig have better support for other languages besides english? Or english will be the focus and contributors will handle the other?
In the future, do you think developers will be able to create custom cards?
What will be your next big thing for Ghost in terms of development? Apps. Media Library, Subscriptions/Membership, real-time editing (like Google Docs).
Will there be a native way to implement a search in Ghost? I'm working on a library right now. Just curious.
Do you think that in the future we will be able to update Ghost from Dashboard? Or is it too risky?
> Will Koenig have better support for other languages besides english? Or english will be the focus and contributors will handle the other?
English is usually what gets the most attention because it's the language used by the Ghost core team. That said, we want all of the writers using Ghost to have the best possible experience!
The new editor ties in to the browser/OS-level spellchecking so that's already a huge win for writing in other languages and dialects compared to what we had available previously.
Unfortunately we are aware of an issue with IME input at the moment but it is being worked on. Unlike the old editor we've got much more control over how everything is working under the hood so we're not blocked on unmoving upstream libraries like we were before.
> In the future, do you think developers will be able to create custom cards?
Yes, that's very much on the cards (pardon the pun 🙈). Once 2.0 has settled we'll be rounding out the native card functionality and developing some more advanced cards. The plan is to then take what we've leaned from the native card implementations to build a friendly card-development framework and installation method.
> Do you think that in the future we will be able to update Ghost from Dashboard? Or is it too risky?
It's definitely something I personally have been interested in implementing - unfortunately it's a tricky thing to accomplish. Ghost-CLI puts it much more in the realm of possibility, but there are still several significant hurdles to making it a definite thing.
Happy using Ghost as it fits exactly what I need, but how does it compare to its competition in 2018 - what changes have you made to keep ahead?
@sara_palmer Hey Sara! Things have definitely changed quite a bit since we launched 5 years ago, and the whole publishing landscape is fairly different now to how it was then.
I think quite a few things have shifted in an interesting way. For a while, Medium was the hot thing which everyone was migrating to, then it seemed to become clear they were never going to find a business model and everyone is largely shifting away again. Meanwhile WordPress is still on track to be a great website builder, and is still moving further and further away from publishing. And most of the other platforms which were around when we started, simply no longer exist.
I think in 2018 Ghost is still the only open platform with a rock solid publishing experience. There are closed platforms with amazing editors, and open platforms with amazing tech - but we've got the best of both worlds. The goldilocks choice, if you will! 🍜 <= (this is ramen but lets pretend it's porridge if you don't tell anyone I won't either)
Haha I literally just installed version 1.25.5 two days ago and was super impressed. Looks like I'll be updating tonight. Well done!
I’m speechless. The execution is A1+. Thanks for sharing such a great software 💪👏.
@_pascalandy Thanks for the kind words :)
Nguyễn Hoàng Lân
Just run ghost update today and it required sudo password. Can we avoid that?
The new editor is just breathtaking, I will definitely be doing a video tutorial & review about 2.0 soon, can't stop looking at it! 😎
@jeffeisley Drop me a link to the tutorial when you get around to it, would love to see :)
@johnonolan Will do!
Alex Kluew 🇨🇦
I love Ghost, still missing the search. :(
@flpstrri Watch this space 🙃
@flpstrri Google custom search is pretty easy to integrate.
Great job ! 😊
@pedward_lieb Thanks Edward! 😬
@babken_karapetyan Thanks Babken!
I am huge Ghost CMS fan! I just want to thank you for creating Ghost! It has changed the way I write and it makes me write more often.
@iuditg Very glad to hear it! Hope you enjoy the new editor, too :)
What do you see as the benefits to using Ghost Pro over competitors like Squarespace, which are considerably less expensive?
Does it not make business sense (maybe support costs/etc) for you to offer more minimal plans for very small personal sites/blogs? I assume possibly not- since unlike Squarespace, you offer the code which provides the ability for your users to find more affordable hosting as needed and self-host?
Liking the update so far! Will we be able to drag the new blocks around? Trying to split up a large markdown post seems a little tedious at the moment, especially when I want to split something between 2 blocks, unless I'm missing something. 😅
@brianfranco drag-and-drop re-ordering of cards is something that is on our minds and we have some initial designs for it. It was too big of a project for this first iteration but we'll be keeping an eye on how the new editor is used and where re-ordering makes sense to introduce.
Definitely interested to hear more about your use-case for splitting something between 2 blocks :)
@lookingsideways Glad to hear it!
My use case is that I had a few HTML blocks scattered throughout my markdown. So I began to split markdown, html, markdown, etc.
I noticed that in one of my HTML blocks I had accidentally left some markdown. However there was no easy way to just cut out the markdown portion of the HTML block, without redoing every block that came after. Would have been nice to cut it out, paste into a block at the end, but then drag it back up in the position it was originally at. Alternatively, inserting a block between blocks instead of just at the end would have worked too.
I love the new design. I specifically haven't been using Ghost because I hated the markdown editor, this is far more intuitive. Although I'm now considering it as an option as I need to migrate my site within the next week.
Also I have a question about the editor - does it not accept embedded html that includes div tags? Just tried to insert an audio player and it wouldn't inject into the page.
The only negative I'd say is the cost. It's expensive. I'd love to see the price points of Ghost Pro lowered considering this is pushed as being the best option for hosting.
@kristoforlawson You can use the HTML card to embed HTML :) price point of Ghost(Pro) has been very successful for us and trended continually upwards over the years as demand has increased, I don't see that changing any time soon -- but of course there's always the open source package if price is a primary concern for you.
@johnonolan I was trying to embed some HTML - but realised I forgot to add something to the footer injection script.
Ok - so regardless of the pricing point I would go all in on Ghost Pro with the new redesign and ditch my current hosting provider - however there's one script that I need which I don't think I can run with Ghost. Specifically it mirrors an RSS feed for my podcast to a subdomain of my site... if I could find a way of dealing with that issue then I'd certainly go all in on Ghost.
@kristoforlawson I'm fairly sure that should be possible - I imagine if you post on the forum, someone would be able to give you a hand :)