When you run more than one Ghost blog
This is the page I most wanted to exist, because it describes how I actually work. I have spent twenty years running SEO sites, and I operate several revenue-generating Ghost blogs — on this exact tool. The Ghost editor is fine when you have one blog and you are writing today’s post. It falls apart the moment your job is to keep five, ten, or twenty sites healthy at once, because everything it makes you do is per-post and per-site: log in here, fix a meta description, log out, log in there, do it again. The work that actually moves an agency’s numbers is the same change applied across a lot of posts and a lot of clients, and a web editor is the worst possible shape for that.
The shape of multi-site work
When you manage several Ghost sites, your real tasks look like this: refresh a client’s stale top-of-funnel posts before a quarterly review, normalize tags across an archive that three different writers contributed to, fix internal links after a content cluster gets reorganized, add a disclosure or a CTA to every post in a category, generate meta descriptions for the forty posts that never got one. Each of those is trivial in concept and brutal by hand, and it repeats across every account you hold. The Ghost UI gives you no find-and-replace across posts, no bulk metadata view, and no way to let a script or an AI assistant touch the whole archive. So the highest-leverage work is exactly the work the tool fights you on.
A folder per client, on your own machine
Specter changes the unit you work in from “a CMS behind a login” to “a folder of markdown files.” It is a native macOS app that does two-way sync between a Ghost blog and a local folder: pull every post down as a .md file with its frontmatter — title, tags, status, feature image URL, excerpt — edit it however you like, and push the changes back. Connect a site once with its Admin API key and you have that client’s entire blog as plain files you can open, search, script, and back up.
Across an agency that means a folder per client. Each site is its own synced directory, so you can work one account without touching another, and each folder is a clean copy you can hand to a tool. The day-to-day jobs become passes instead of marathons: refreshing old posts at scale, bulk SEO edits to titles and metadata, fixing internal links across the archive. You bring your own AI — Specter bundles no model and charges no tokens — so the Claude, ChatGPT, or Gemini subscription you already pay for does the heavy lifting on real client posts, and you review the result before any of it goes live.
The parts that matter when it is a client’s site
Working fast on someone else’s blog is only an asset if it is also safe, and this is where the per-client discipline pays off. Before a bulk pass, Specter’s dry-run preview tells you exactly which posts would be created, updated, or flagged as a conflict — so you see the blast radius on a client account before a single byte is written. If a client edited a post in Ghost while you were working locally, Specter prompts you about the conflict instead of silently overwriting their change, which is the kind of mistake that loses an account. And because each client’s blog is now a folder of files, you can put it under git for a permanent, diffable history (see version control for your Ghost posts) — an audit trail of every change you made, per post, that you can roll back if a client asks.
On pricing and scale
Specter is a one-time $49 purchase, not a per-seat subscription, and a license activates on up to two Macs — useful if you work across a laptop and a desktop. There is no per-site fee; you connect as many client blogs as you manage. If you are the kind of operator who is eyeing the Ghost Admin API and wondering whether to just script all this yourself, that is a fair instinct and worth reading honestly: why not just use the API directly lays out what a robust two-way sync actually takes to build and maintain, and where buying the maintained version beats babysitting your own. Underneath Specter is a CLI, so the scripts you genuinely want to write can call a sync engine that already handles the formats and conflicts.
The promise for an agency is narrow and real: keep each client’s blog as files you control, do the cross-archive work the editor cannot, review every change before it ships, and keep a history of all of it. That is the workflow I run my own sites on, which is the only reason I am comfortable putting it in front of yours.