Ghost → AT Protocol Bridge
Publish Ghost posts as standard.site documents
standard.site turns your Ghost posts into long-form AT Protocol documents. Readers get
discoverable articles, canonical URLs, and future-proof compatibility with long-form apps.
Why standard.site?
- Documents, not tweets — proper long-form content
- Canonical URLs that point back to your Ghost site
- Discoverable by long-form readers and aggregators
- Interoperable across the AT Protocol ecosystem
Get started
Bluesky account
You need a handle and an app password.
Open Bluesky
standard.site docs
Read the specification and ecosystem notes.
standard.site
Quick start
- Configure `.env` with `DATABASE_URL`, `JWT_SECRET`, and `BACKEND_URL`.
- Start the bridge backend and create a user account.
- Update your user profile with Ghost URL + Admin API key.
- Enable standard.site and sync posts.
- Publish a post to create a standard.site document.
curl -X POST http://localhost:5001/api/standard-site/enable \
-H "Authorization: Bearer $JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"publicationName": "My Blog",
"publicationDescription": "Testing standard.site",
"dualPost": false
}'
Dual posting (optional)
standard.site creates a document record only. If you want a social feed post on Bluesky too,
enable dual posting and include `customText` when publishing.
Verify .well-known
standard.site requires a `.well-known/site.standard.publication` endpoint. Your domain should
return the AT-URI of your publication record.
curl "https://yourblog.com/.well-known/site.standard.publication"
FAQ
Will this show up on Bluesky?
standard.site creates a document record. To also post to the Bluesky social feed, enable
dual posting and include `customText` on publish.
Where is the human-readable view?
The canonical, human-readable view is your Ghost post URL. The standard.site record points back to it.
Who can use it?
Any Ghost admin can use the bridge once they add their Ghost Admin API key and Bluesky credentials.