This is a fork of Ghost, the brilliant open source publishing platform. We renamed it to avoid any confusion — "Ghost" is their name, not ours, and we’re not using it with their permission. This fork adds Bluesky/AT Protocol integration (OAuth login, bidirectional comment sync, post-as-user). We’d love for the Ghost team to take this work back upstream if it’s useful to them.
Ghost.org • Forum • Docs • Contributing • Twitter
- Bluesky OAuth login for members — sign in with your Bluesky handle via AT Protocol OAuth 2.1 (DPoP + PKCE)
- Progressive scope upgrade — login with minimal permissions (
atproto), upgrade to write access (atproto transition:generic) when the user wants their comments to post as themselves on Bluesky - Bidirectional comment sync — Ghost comments post to linked Bluesky threads, Bluesky replies sync back as Ghost comments (with threading)
- Post-as-user — members with write scope have their comments posted from their own Bluesky account, not the blog’s
- Graceful scope handling — if a user revokes access, the system detects it, falls back to the blog account, and shows the upgrade prompt again
See the blog post for a detailed walkthrough of the implementation and the gotchas we hit.
ghost/core/core/server/services/atproto-oauth/— OAuth client, callback, session restore, scope upgradeghost/core/core/server/services/bluesky-sync/— bidirectional comment syncapps/comments-ui/src/components/content/forms/main-form.tsx— upgrade prompt + Bluesky discussion link
Everything below is from the original Ghost README.
Note
Love open source? Ghost is looking for staff engineers to join the team and work full-time
The easiest way to get a production instance deployed is with the official Ghost(Pro) managed service. It takes about 2 minutes to launch a new site with worldwide CDN, backups, security and maintenance all done for you.
For most people this ends up being the best value option because of how much time it saves — and 100% of revenue goes to the Ghost Foundation; funding the maintenance and further development of the project itself. So you’ll be supporting open source software and getting a great service!
If you want to run your own instance of Ghost, in most cases the best way is to use our CLI tool
npm install ghost-cli -g
Then, if installing locally add the local flag to get up and running in under a minute - Local install docs
ghost install local
or on a server run the full install, including automatic SSL setup using LetsEncrypt - Production install docs
ghost install
Check out our official documentation for more information about our recommended hosting stack & properly upgrading Ghost, plus everything you need to develop your own Ghost themes or work with our API.
For anyone wishing to contribute to Ghost or to hack/customize core files we recommend following our full development setup guides: Contributor guide • Developer setup
A big thanks to our sponsors and partners who make Ghost possible. If you're interested in sponsoring Ghost and supporting the project, please check out our profile on GitHub sponsors ❤️
DigitalOcean • Fastly • Tinybird
Everyone can get help and support from a large community of developers over on the Ghost forum. Ghost(Pro) customers have access to 24/7 email support.
To stay up to date with all the latest news and product updates, make sure you subscribe to our changelog newsletter — or follow us on Twitter, if you prefer your updates bite-sized and facetious. 🎷🐢
Copyright (c) 2013-2026 Ghost Foundation - Released under the MIT license. Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our trademark policy for info on acceptable usage.


