From IndieWeb
Jump to: navigation, search

Ghost is an an open source blogging software project written in node.js, and also a hosted silo at

Indieweb Examples

IndieWeb community members running Ghost on their primary personal domain:

Other Independents

Other Independents running Ghost on their primary domain :

IndieWeb Friendly

John O'Nolan has expressed interest in supporting Webmention with Vouch, and a "modern replacement for pingbacks".

"... would love to see a modern replacement for pingbacks though!" [1]

"I hadn’t heard of Vouch before. That’s actually very compelling!" [2]


Rejected microformats2 markup in default theme

In October 2013, Barnaby Walters sent a pull request to casper (the default Ghost theme) which added h-entry and h-card microformats2 markup, but it was rejected. John O’Nolan commented the following when closing the PR:

“microformats2 is a very interesting subject and one which we are pay close attention to. At this time though, we're not ready to recommend it as part of the default Ghost theme. We absolutely encourage you to use it in all your personal themes, however - and of course you are welcome to distribute a 'microformats2-enabled' fork of Casper!” [3]

Note: A follow-up post on the Ghost blog: said they "added meta tag output for, Twitter Cards, and Open Graph" - all oligopoly (schema), or silo-specific invisible meta markup.

In February 2017, James Duncan opened an issue requesting Microformats 2 support in the default theme.

"There's a pull request at #29 regarding MF2 support in casper, but it was rejected on the basis of MF2 being something undevelped. Three years down the line, I'm wondering if you'd accept that or an updated PR to support MF2 and Indieweb bits?" [4]

John O'Nolan rejected the request again, citing

"At the moment we still don't think that the microformats2 approach is the right way to go or will offer significant benefits beyond our existing structured data" [5]


"You're (both) very welcome to add microformats 1/2/any-other to your themes, but this isn't something we're going to include in the default theme at the moment. I have no opinion on any politics RE schema-vs-microformats other than that schema has a concrete use-case and benefit which justifies its inclusion :)" [6]

which suggests that a future request of adding Microformats support to the default theme will need to demonstrate a concrete use case.

  • The concrete use-case is sending and receiving rich webmentions like comments, likes, reposts. Since webmentions are under consideration, implementing mf2 should be clearly communicated as an essential part of that for the best UX.


Ghost has an API documented at The public API to retrieve post information appears to be documented, but the private API to write posts is not documented well. As of 2018-10-04, There is a note on the page about their current OAuth limitations which makes it difficult for third-party apps:

We're working on adding more standard OAuth flows for getting private access to the API. In the meantime, the only OAuth flow available is to use a standard user login to get a Bearer Token. Therefore, getting access to write data from 3rd party apps is not impossible, but is not ideal.

This article includes a sample of posting using the API:


Lack of extensibility or IndieWeb

Lack of Micropub and poor performance

  • 2018-01-04 Johnathan Lyman: From Ghost to WordPress
    … No intention on supporting MicroPub. … Extensibility is non-existent. … Poor content organization. … Poor performance. …



Ghost was originally offered as a concept in reaction to WordPress and was self-described as:

  • An "idealistic and fictional concept for a WordPress-lite fork" [7]
  • A "lite version of WordPress" [8]

Early image introduction

The introduction to the concept of Ghost was purely an image instead of using text. Text images were addressed as first question in his FAQ.

Kickstarter campaign

Ghost managed to raise £196,362 of through funding through Kickstarter, with more sponsored after it had ended. This spurred the start of development

Transition from WordPress

It was decided early on that the WordPress PHP code was too convoluted and so they started from scratch.

Node.js was chosen for the platform, due to many benefits such the Node Package Manager and associated ecosystem. The templating code was kept very similar to Wordpress, using the mustache templating engine instead of PHP.


Ghost officially launched on 2013-09-19.

Dogfooding at launch

There was originally criticism that John O'Nolan (the founder of Ghost) has a blog that runs on Wordpress, instead of selfdogfooding or even dogfooding. This was because Ghost was originally just an idea that was proposed, it took a while to make it.

As of 2013-09-19 he had a subdomain running Ghost at - which is dogfooding but not yet selfdogfooding. He was not yet running it on his personal (identity) domain at (which was running WordPress at the time) - thus not yet satisfying the "self" in selfdogfooding, that is, dogfooding your code to represent your primary self online.

As of 2014-04-12, has moved to Ghost and fully selfdogfooding

See Also