Ghost Platform Help
Step 1 — Gather context
If
exists, read it first for accumulated platform knowledge.
-
What do you need help with?
- A) Newsletter setup — Mailgun config, sending, delivery issues
- B) Membership & subscriptions — Stripe integration, tiers, paid content gating
- C) Content publishing — editor, scheduling, email-only posts, cards
- D) Theme customization — Handlebars templates, custom settings, marketplace themes
- E) Migration — from Substack, WordPress, Medium, Mailchimp, or other platforms
- F) API integration — Content API, Admin API, webhooks, custom integrations
- G) Analytics — newsletter open/click rates, member growth, engagement
- H) Self-hosting — installation, updates, configuration, performance
- I) Ghost(Pro) — plan selection, billing, limits, custom SSL
- J) Something else
-
How are you running Ghost?
- A) Ghost(Pro) managed hosting
- B) Self-hosted (Docker, DigitalOcean, AWS, etc.)
- C) Third-party managed host (MagicPages, Pikapods, etc.)
- D) Haven't set up yet — planning
-
What's your goal? (describe your specific question or issue)
If the user's request already provides most of this context, skip directly to the relevant step.
Step 2 — Route or answer directly
If the request maps to a strategy skill, route with the exact command:
| Problem domain | Route to |
|---|
| Email marketing strategy (sequences, segmentation, automation) | "This is an email marketing question — run: /sales-email-marketing {user's question}
" |
| Newsletter monetization (paid tiers, finding sponsors) | "This is a monetization question — run: /sales-newsletter {user's question}
" |
| Growing subscriber/member list | "This is a growth question — run: /sales-audience-growth {user's question}
" |
| Membership site structure, course content, retention | "This is a membership question — run: /sales-membership {user's question}
" |
| Email deliverability (SPF, DKIM, DMARC beyond Mailgun) | "This is a deliverability question — run: /sales-deliverability {user's question}
" |
| Connecting Ghost to CRM or other tools via Zapier/API | "This is an integration question — run: /sales-integration {user's question}
" |
If the question is Ghost-specific, continue to Step 3.
Step 3 — Ghost platform reference
Read references/platform-guide.md
for the full platform reference — modules, pricing, integrations, data model, Mailgun setup, Stripe configuration, theme development, migration guides.
Answer the user's question using only the relevant section. Don't dump the full reference.
Step 4 — Actionable guidance
You no longer need the platform guide — focus on the user's specific situation.
For implementation questions, give step-by-step instructions tailored to their hosting type (Ghost(Pro) vs self-hosted). Reference the API docs in
references/ghost-api-reference.md
when they need programmatic access.
If you discover a gotcha, workaround, or tip not covered in
, append it there.
Gotchas
Best-effort from research — review these, especially items about plan-gated features and integration gotchas that may be outdated.
- Starter plan has no paid subscriptions — you need Publisher ($29/mo) or higher to accept payments from members. Starter only supports free newsletters.
- Mailgun is the only bulk email provider — Ghost does not support SES, SendGrid, or other providers for newsletter sends. Self-hosters on small lists hit the Mailgun free tier limit (100 emails/day). Budget $15-35/mo for Mailgun on top of hosting.
- Stripe subscription sync can lag — members who pay in Stripe may show as "free" in Ghost temporarily. Check the webhook connection in Ghost Admin → Integrations → Stripe if member statuses aren't updating.
- No digest/weekly newsletter — Ghost sends one email per published post. There's no built-in way to batch multiple posts into a weekly digest. Workaround: manually create a weekly roundup post.
- Newsletter analytics are approximate — open tracking relies on pixel loading (blocked by many email clients). Click tracking is more reliable. Don't make decisions based solely on open rates.
- Migration breaks embedded content — Twitter/X embeds, custom HTML blocks, and some media may not render correctly in email after migrating from Substack or WordPress. Test email sends before going live.
- Theme changes require Handlebars knowledge — Ghost uses Handlebars templating, not a visual drag-and-drop builder. Custom themes need HTML/CSS/Handlebars skills. Use marketplace themes if you don't code.
- Self-hosted requires CLI updates — Ghost doesn't auto-update. Run via the Ghost CLI regularly. Skipping major versions can make upgrades painful.
Related skills
- — Newsletter monetization (paid subscriptions, sponsorships, premium tiers, pricing strategy)
- — Email marketing strategy (campaigns, automation, segmentation across platforms)
- — Growing your subscriber/member list (lead magnets, cross-promotion, referrals)
- — Membership site strategy (course structure, retention, pricing models)
- — Email deliverability (SPF, DKIM, DMARC, domain warmup, inbox placement)
- — Connecting Ghost to CRM and other tools via Zapier, Make, or API
- — Kit platform help (alternative newsletter platform)
- — MailerLite platform help (alternative newsletter/email platform)
- — Not sure which skill to use? The router matches any sales objective to the right skill. Install:
npx skills add sales-skills/sales --skill sales-do
Examples
Example 1: Mailgun delivery issues
User says: "My Ghost newsletter emails aren't being delivered to subscribers"
Skill does: Checks Mailgun configuration in Ghost Admin, verifies domain DNS records (SPF, DKIM, CNAME), checks Mailgun dashboard for bounces/complaints, reviews Ghost(Pro) vs self-hosted differences, troubleshoots common Mailgun free tier limits
Result: User identifies the delivery bottleneck and fixes their Mailgun configuration
Example 2: Setting up paid memberships
User says: "I want to charge $10/month for premium content on my Ghost blog"
Skill does: Confirms plan supports paid subscriptions (Publisher+), walks through Stripe Connect setup, configures membership tiers (free + paid), sets up content gating with the public preview card, creates an offer for founding members
Result: User has a working paid membership with Stripe billing and gated content
Example 3: Migrating from Substack
User says: "I'm moving my newsletter from Substack to Ghost — how do I keep my subscribers?"
Skill does: Walks through Substack export, Ghost import process, Stripe subscription migration (if paid), DNS/domain transfer, URL redirect setup (Substack /p/ → Ghost slug), email template testing
Result: User migrates content, subscribers, and paid members with minimal disruption
Troubleshooting
Stripe payments not reflecting in Ghost
Symptom: Member pays in Stripe but Ghost shows them as "free"
Cause: Stripe webhook not connected or webhook events failing
Solution: Go to Ghost Admin → Settings → Membership → Stripe. Disconnect and reconnect Stripe. Check Stripe Dashboard → Developers → Webhooks for failed events. Ensure the webhook URL matches your Ghost domain.
Newsletter shows 0% open rate
Symptom: Newsletter sent successfully but analytics show zero opens
Cause: Email clients blocking tracking pixels (Apple Mail Privacy Protection, Gmail proxy)
Solution: Open rates are increasingly unreliable. Focus on click rates instead. Check Mailgun dashboard for actual delivery stats. If Mailgun shows delivered but Ghost shows 0%, the tracking pixel may be stripped.
Ghost(Pro) plan limits hit unexpectedly
Symptom: Can't add more members, newsletters, or staff users
Cause: Plan limits enforced — Starter: 1 staff/1 newsletter/1K members, Publisher: 3 staff/3 newsletters
Solution: Upgrade plan in Ghost Admin → Settings → Pro. If approaching member limits, clean up inactive free members or upgrade to Business tier.