Ghost

The fastest way to add waitlists to Ghost

Add a waitlist to any Ghost site in minutes. Paste a pre-styled HTML form into a post, page, or Code Injection — no plugin, no JavaScript, no theme edits required.

Ghost + Waitlister

Trusted by 5,000+
businesses & entrepreneurs

Data Hokage logo
Data Hokage
Fink Academy logo
Fink Academy
stagewise logo
stagewise
Sirius AI logo
Sirius AI
BLADNA logo
BLADNA
PagePal logo
PagePal
ChatAce.io logo
ChatAce.io
Instanote logo
Instanote
DirectoryDeck logo
DirectoryDeck
landman® logo
landman®
datapro logo
datapro
NATRU logo
NATRU
Pop Date logo
Pop Date
Aspire logo
Aspire
WalletX logo
WalletX
quickblogs logo
quickblogs
Data Hokage logo
Data Hokage
Fink Academy logo
Fink Academy
stagewise logo
stagewise
Sirius AI logo
Sirius AI
BLADNA logo
BLADNA
PagePal logo
PagePal
ChatAce.io logo
ChatAce.io
Instanote logo
Instanote
DirectoryDeck logo
DirectoryDeck
landman® logo
landman®
datapro logo
datapro
NATRU logo
NATRU
Pop Date logo
Pop Date
Aspire logo
Aspire
WalletX logo
WalletX
quickblogs logo
quickblogs
"Waitlister has been amazing; honestly, I don't plan on changing to another provider. Being able to create beautiful landing pages for my waitlist has been amazing."
Data Hokage logo
Sinazo Bogicevic
Founder, Data Hokage
Use Cases

What you can build

Popular ways Ghost users implement waitlists

Newsletter Pre-Launch

Collect subscribers before your Ghost newsletter officially launches. Build anticipation with a dedicated coming-soon page and convert early fans into founding members.

Example: Indie writer launching a Ghost publication collects 500+ waitlist signups before the first post

Paid Membership Interest

Gauge interest in a new paid tier before enabling Stripe. Perfect for Ghost creators testing whether there's demand for a paid offering.

Example: Existing free newsletter adds a waitlist for their upcoming paid tier

Course & Cohort Waitlists

Collect interest for online courses, cohorts, or workshops hosted on your Ghost site. Manage limited spots with overflow waitlists.

Example: Writing coach runs a cohort-based course with a 50-person waitlist

Book & Digital Product Launches

Build a launch list for books, digital products, or paid newsletters. Notify subscribers on release day and convert them into paying customers.

Example: Author collects 2,000 signups before book launch, hits bestseller list on day one

Podcast Launch Waitlist

Collect listeners before your podcast launches. Use your Ghost site as the landing page and drive day-one subscribers with a waitlist.

Example: Podcast pre-launch page with waitlist form above the fold

Private Community Beta

Run a private beta or invite-only community alongside your Ghost publication. Let readers apply via a waitlist form on a dedicated page.

Example: Publication launches a paid Discord community with a 200-person beta waitlist
Benefits

Why Waitlister for Ghost?

Built to work seamlessly with Ghost's capabilities

Works on Every Ghost Site

Compatible with Ghost Pro and self-hosted Ghost, on every plan. No plugin to install, no marketplace approval, no theme changes required.

Zero JavaScript, Zero Bloat

The form is pure HTML. No scripts, no external dependencies, no impact on Lighthouse scores. Keeps your Ghost site as fast as Ghost intended.

Inherits Your Theme Automatically

Uses Ghost's native accent color variable and inherits your theme's typography. Looks native on Casper, Dawn, Headline, Source, Edition, and any custom theme.

Light & Dark Mode Ready

The form follows your theme's text and background colors automatically. Works seamlessly whether your readers are in light or dark mode.

Complements Ghost Members

Use waitlists alongside Ghost's built-in members and newsletter features. Perfect for launching paid tiers, courses, or new publications before you're ready to open subscriptions.

Built-in Referral Tracking

Grow virally with Waitlister's referral program. Perfect fit for Ghost creators who already think in terms of audience building and word-of-mouth growth.

Works Anywhere in Ghost

Drop the form into a post, a page, Code Injection for sitewide placement, or a custom Handlebars theme template. Same snippet, any context.

Fully Responsive

The form adapts to every screen size automatically. Stacks on mobile, inline on desktop, looks great in every Ghost theme's reading flow.

Choose Your Method

Which integration is
right for you?

Compare both methods to find the best fit for your Ghost project

FeatureForm ActionHTML Card
Setup Time~5 minutes~2 minutes
Technical SkillBasic HTML/CSSNone
PlacementSitewide via Code InjectionSpecific post/page
JavaScript RequiredOptional (referrals only)No
Theme Compatibility100%100%
Light/Dark ModeAutomaticAutomatic
Custom FieldsFull controlEdit HTML
Referral TrackingOne-time setupManual script add
Ghost Pro CompatibleYesYes

Choose Form Action if...

  • You want the form available sitewide, not in one specific post
  • You're comfortable editing Code Injection or theme files
  • You want full control over form HTML and CSS
  • You need custom fields beyond email, name, and phone
  • You want referral tracking with ?ref= URL parameters
  • You're a Ghost theme developer shipping a custom template

Choose HTML Card if...

  • You want the form embedded directly in a specific post or page
  • You prefer a copy-paste HTML card over editing theme files
  • You want zero JavaScript on your Ghost site
  • You're on Ghost Pro and can't edit theme files
  • You want the form to match your Ghost accent color automatically
  • You want the simplest possible setup
Step-by-Step Guide

How to integrate

Follow these Ghost-specific instructions

1

Get your waitlist key

Sign into your Waitlister dashboard → go to Overview → copy your waitlist key. You'll paste this into the snippet in the next step.

New to Waitlister? Create your first waitlist (takes 30 seconds).

Your waitlist key format: wl_xxxxxxxxxxxxxxxxx
2

Copy the Ghost snippet

Copy the pre-styled HTML form below. It's designed specifically for Ghost — it inherits your theme's accent color and typography automatically, works in light and dark mode, and has zero JavaScript.

Replace YOUR_WAITLIST_KEY with your actual key from step 1.

<div class="wl-form">
  <form action="https://waitlister.me/s/YOUR_WAITLIST_KEY" method="POST" class="wl-form__form">
    <input type="email" name="email" placeholder="Enter your email" required aria-label="Email address" class="wl-form__input">
    <button type="submit" class="wl-form__button">Join the waitlist</button>
  </form>
  <p class="wl-form__note">No spam. Unsubscribe anytime.</p>
</div>

<style>
  .wl-form { max-width: 440px; margin: 2em auto; font-family: inherit; }
  .wl-form__form { display: flex; gap: 8px; flex-wrap: wrap; }
  .wl-form__input { flex: 1 1 220px; min-width: 0; padding: 12px 16px; font-size: 1rem; font-family: inherit; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 6px; opacity: 0.9; }
  .wl-form__input:focus { outline: 2px solid var(--ghost-accent-color, #ff1a75); outline-offset: 2px; opacity: 1; }
  .wl-form__button { padding: 12px 20px; font-size: 1rem; font-family: inherit; font-weight: 600; color: #fff; background: var(--ghost-accent-color, #ff1a75); border: none; border-radius: 6px; cursor: pointer; }
  .wl-form__button:hover { opacity: 0.9; }
  .wl-form__note { margin-top: 12px; font-size: 0.85rem; opacity: 0.6; text-align: center; }
  @media (max-width: 420px) { .wl-form__form { flex-direction: column; } .wl-form__input, .wl-form__button { width: 100%; } }
</style>
Pro tip
The form uses var(--ghost-accent-color) which picks up the accent color set in Ghost Admin → Settings → Design → Brand. Change it there and your form updates automatically.
3

Open your Ghost post or page editor

In your Ghost admin, open the post or page where you want the waitlist form. This can be a blog post, a standalone page (great for a dedicated landing page), or an existing page you want to add a CTA to.

4

Add an HTML card

In the Ghost editor, click the + button where you want the form to appear, or type /html on a new line. Select HTML from the card menu.

Paste the snippet from step 2 into the HTML card.

Pro tip
You can also type /html directly on a new line in the editor to insert an HTML card instantly.
5

Whitelist your Ghost domain

In your Waitlister dashboard → ConfigureWhitelisted domains → add the domain your Ghost site is published on.

Ghost Pro: use your full subdomain (e.g. yoursite.ghost.io) or your custom domain. Never whitelist just ghost.io — that would allow submissions from every Ghost Pro site.

Self-hosted: add your custom domain (e.g. yourdomain.com).

Ghost Pro: yoursite.ghost.io
Custom domain: yourdomain.com
Both www and non-www if you use both
6

Preview and publish

Click Preview in the Ghost editor to check how the form looks. Submit a test signup and verify it appears in your Waitlister dashboard under Subscribers. Then hit Publish.

Pro tip
After a successful submission, users are redirected to your Waitlister thank-you page (or the confirmation pending page if double opt-in is enabled).
Troubleshooting

Common issues & solutions

Quick fixes for Ghost-specific problems

Go to Waitlister → ConfigureWhitelisted domains and add your exact Ghost domain. On Ghost Pro, use the full subdomain (e.g. yoursite.ghost.io), not just ghost.io. If you use a custom domain, add that instead. Add both www and non-www versions if both are in use.

You likely pasted the snippet into a Markdown or Paragraph card instead of an HTML card. In the Ghost editor, type /html on a new line to insert an HTML card, then paste the snippet there.

The form uses var(--ghost-accent-color), which is defined by modern Ghost themes. If your theme doesn't expose this variable (very old or heavily customized themes), the form falls back to a default pink. To force a specific color, replace var(--ghost-accent-color, #ff1a75) in the snippet with your hex code (e.g. #0066ff).

Make sure you pasted the <style> block into Settings → Code injection → Site Footer and clicked Save. Then do a hard refresh (Ctrl+Shift+R) of your published site. The form markup alone won't be styled without the CSS injected sitewide.

Check three things: (1) your waitlist key in the form action URL is correct, (2) your Ghost domain is whitelisted in Waitlister, (3) you're looking at the correct waitlist in the dashboard. If double opt-in is enabled, subscribers only appear in the dashboard after they confirm via email.

The snippet includes a @media (max-width: 420px) rule that stacks the form on small screens. If the mobile layout is broken, your theme's CSS may be overriding it. Increase the specificity by prefixing the media query rules with a more specific selector, or wrap the form in a unique parent class.

Verify the script is pasted into Site Footer Code Injection (not Site Header), and that it runs on the page with the form. Test by visiting your waitlist page with ?ref=TEST_CODE appended and inspecting the form — you should see a hidden referred_by input added to it. The referral code must match an existing subscriber's code to credit them.

The snippet uses scoped .wl-form classes, so multiple forms on one page work fine. If you need visually different forms on the same page (e.g. different colors), give each form a unique wrapper class and override the styles for that wrapper.

Some Ghost themes set body text colors via specific selectors that override color: inherit. Fix this by adding an explicit color rule to the .wl-form__input class matching your theme's text color.

After signup, users are redirected to your Waitlister thank-you page. Customize its design in Waitlister → Thank You Page settings. You can also set a custom redirect URL to send users back to a page on your Ghost site instead.

Your local testing domain (e.g. localhost) needs to be whitelisted separately from your production domain. For production, add your published Ghost Pro subdomain or custom domain. Whitelisted domains update instantly — no redeploy needed.

Theme updates can reset custom files on Ghost Pro. Use the HTML card or Code Injection method instead of theme editing — both survive theme updates because they're stored in Ghost's database, not in theme files.

FAQ

Common questions

About Ghost integration

No. Ghost doesn't have a plugin system. The integration is just a pre-styled HTML form you paste into an HTML card or Code Injection. It takes under 2 minutes and works on every Ghost site.

Yes, on every Ghost Pro plan. The HTML card and Code Injection features are available to all Ghost sites regardless of plan. No Ghost developer access or self-hosting required.

Yes. The snippet works identically on self-hosted Ghost installations. You can also embed it directly in your theme's Handlebars templates if you want a dedicated waitlist page template.

No. The form is pure HTML with scoped CSS — zero JavaScript, zero external scripts, zero fonts loaded. Your Lighthouse scores won't move at all. This is why it's the right fit for Ghost specifically, where page speed matters.

Yes, automatically. The snippet uses var(--ghost-accent-color), which every modern Ghost theme exposes based on the accent color you set in Settings → Design → Brand. Fonts inherit from your theme. Text colors follow your theme's light/dark mode.

Yes — Casper, Dawn, Headline, Source, Edition, Ruby, and any third-party or custom theme. The form uses font-family: inherit and color: inherit so it blends with whatever typography and color scheme your theme defines.

Yes. Put the styles in Settings → Code injection → Site Footer once, then paste the form markup into any post, page, or theme template. The form will be styled everywhere without repeating CSS.

Absolutely. Waitlister complements Ghost Members rather than replacing it. Use Waitlister for pre-launch signups, paid tier interest, or course waitlists — and Ghost Members for your actual newsletter subscribers. Many Ghost creators run both in parallel.

Yes. The form uses color: inherit and border: 1px solid currentColor, so it automatically follows whatever text color your theme sets. No media queries or theme detection needed.

Yes. Add any input to the form and it becomes either a standard field (name, phone) or custom metadata on the subscriber. See the "Customize fields" step above for examples.

Yes. Waitlister has a built-in referral program. The snippet includes an optional script that reads ?ref=CODE from the URL and credits the referrer automatically when someone signs up.

They're redirected to your Waitlister thank-you page (or a confirmation page if double opt-in is enabled), receive a welcome email if configured, and appear in your dashboard immediately. You can email them via broadcasts or enable a referral program.

Yes. The integration itself is free — it's just HTML. Waitlister has a free plan that's perfect for getting started, with paid plans for higher subscriber limits and advanced features.

Yes. The form installs no cookies and loads no tracking scripts. Subscriber data is stored securely on Waitlister's servers, and you can export or delete it anytime from your dashboard. Review our privacy policy for details.

Explore

More integrations

Explore other platforms

Get started with Waitlister

Integrate Waitlister with Ghost to get the most out of your waitlist