sales-ghost
Ghost platform help — publishing, newsletters, memberships, Stripe subscriptions, themes, Mailgun email delivery, Content API, Admin API, and migration. Use when Ghost newsletters aren't being delivered, Stripe payments aren't syncing with member status, Mailgun setup is failing, theme customization isn't working, migrating from Substack or WordPress, newsletter analytics look wrong, membership tiers aren't gating content correctly, or Ghost API calls are returning errors. Do NOT use for email marketing strategy (use /sales-email-marketing), newsletter monetization strategy (use /sales-newsletter), or growing your subscriber list (use /sales-audience-growth).
What this skill does
# Ghost Platform Help
## Step 1 — Gather context
If `references/learnings.md` exists, read it first for accumulated platform knowledge.
1. **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
2. **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
3. **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.*
1. **Starter plan has no paid subscriptions** — you need Publisher ($29/mo) or higher to accept payments from members. Starter only supports free newsletters.
2. **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.
3. **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.
4. **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.
5. **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.
6. **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.
7. **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.
8. **Self-hosted requires CLI updates** — Ghost doesn't auto-update. Run `ghost update` via 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.
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".