mothermachine

Browse / Content publishing

Ghost

Open-source publishing platform with newsletters and memberships, driven through the official Admin API.

AdaptableOperable Business appWeb app Deterministic JavaScriptTypeScript API License: MIT

Ghost is a Node.js CMS for publications: posts, pages, paid memberships, tiers, and email newsletters. It runs self-hosted from a JSON config or on the Builder's Ghost(Pro) service. The Builder documents an Admin API and Content API with an official JavaScript client, which is how an agent creates, publishes, and emails content.

Use it when
  • I publish a newsletter and blog and want members and payments without Substack's cut
  • I want my agent to draft posts, schedule them, and email subscribers through a real API
Gotchas
  • Production requires MySQL 8; SQLite is dev-only
  • Self-hosted newsletters need a Mailgun account for bulk sending; SMTP only covers transactional mail
  • Admin API uses short-lived JWTs minted from an Admin API key; the official @tryghost/admin-api client handles this
  • The repo's .env.example is empty of variables; configuration is the config.*.json family, not .env
  • Third-party MCP wrappers exist (for example MFYDev/ghost-mcp) but are not needed for operability

Last activity Sep 3, 2026. Fit: adaptable 3, operable 3.

Editions

Self-hosted · Free open source

  • Clonegit clone https://github.com/TryGhost/Ghost
  • Installnpm install ghost-cli -g && ghost install

closed source

closed source

No distribution recorded.

closed source

No distribution recorded.

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Light edit13 things to editdeployment-plus-code surface

config.production.json (or the same keys as double-underscore env vars) is deployment configuration: url, database, mail transport, storage. Branding, navigation, tiers, newsletters, portal and the Stripe connection are set in Ghost Admin (Design and branding, Membership, Newsletters). Anything beyond a theme's exposed custom settings is Handlebars code in content/themes/<theme>/: default.hbs, index.hbs, post.hbs, partials/ and the theme package.json that declares custom settings and posts_per_page.

Env vars
url NODE_ENV database__client database__connection__host database__connection__user database__connection__database mail__transport mail__options__auth__user
Config files
config.production.json config.development.json content/themes/<theme>/package.json content/themes/<theme>/default.hbs content/themes/<theme>/partials/
Prompt files
none
Accounts you need
Mailgun (bulk newsletter delivery, self-hosted)Stripe (paid memberships)

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderremote or local

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
docs.ghost.org/admin-api/

Reach

Partial coverage. 8 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Write and publish posts and pagesReachableAdmin API resources: Posts, Pages
Organize with tagsReachableAdmin API resource: Tags
Manage members, labels, and offersReachableAdmin API resources: Members, Labels, Offers
Set up paid tiersReachableAdmin API resource: Tiers
Send a post as an email newsletterReachableAdmin API resource: Newsletters; posts publish with newsletter and segment parameters
Upload imagesReachableAdmin API resource: Images
Upload and activate themesReachableAdmin API resource: Themes
Register webhooksReachableAdmin API resource: Webhooks
Read post and email analyticsNot reachablenot among Admin API resources; stats live in the admin UI
Moderate member commentsNot reachablenot among Admin API resources

Code stack

Languages
JavaScriptTypeScript
Frameworks
ExpressEmber (admin)KnexHandlebars themes
Package manager
yarn
Database
MySQL 8SQLite (dev)
Hosting target
Ubuntu with ghost-cliDockerGhost(Pro)
Built
Human-written (recorded, never ranked)

Skills

Repo tooling for Ghost contributors: Admin API endpoints, database migrations, the Shade design system.

Kind
contributor
Paths
.agents/skills/*/SKILL.md

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: headless Node.js CMS with admin UI, installed with ghost-cli95%
executionModelno model at runtime; no model SDK in stack95%
operabilitydocs.ghost.org/admin-api: Admin API with official @tryghost/admin-api client, published by TryGhost95%
effortdocs.ghost.org config documents config.<env>.json and env var mapping; theme directory documented; triage confirmed70%
editionsghost.org/pricing: Starter $18, Publisher $29, Business $199 per month billed yearly; self-host from source with ghost-cli70%
activepushedAt 2026-09-03; 145 open issues–
provenanceproject since 2013 with foundation and paid staff; no vibe-coded claim90%
reach85%

Open questions

  • Confirm current Ghost(Pro) monthly-billed prices; the fetched figures are the yearly-billed rates
  • Verify the exact env var mapping on docs.ghost.org/config (not re-fetched during analysis)

Sources