Ghost Platform Help
Step 1 — Gather context
If references/learnings.md 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 references/learnings.md, 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
ghost updatevia the Ghost CLI regularly. Skipping major versions can make upgrades painful.
Related skills
/sales-newsletter— Newsletter monetization (paid subscriptions, sponsorships, premium tiers, pricing strategy)/sales-email-marketing— Email marketing strategy (campaigns, automation, segmentation across platforms)/sales-audience-growth— Growing your subscriber/member list (lead magnets, cross-promotion, referrals)/sales-membership— Membership site strategy (course structure, retention, pricing models)/sales-deliverability— Email deliverability (SPF, DKIM, DMARC, domain warmup, inbox placement)/sales-integration— Connecting Ghost to CRM and other tools via Zapier, Make, or API/sales-kit— Kit platform help (alternative newsletter platform)/sales-mailerlite— MailerLite platform help (alternative newsletter/email platform)/sales-do— 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.