- Blog
- How to Add a Waitlist to Ghost (Code Injection)
article
How to Add a Waitlist to Ghost (Code Injection)
Add a GetWaitly waitlist to Ghost via Code Injection and an HTML card — site-wide or per-post. Includes the popup variant and fixes.
Ghost is a publishing platform, so a waitlist fits naturally: collect early readers before launch, then email them when the product or publication goes live. Ghost even has membership built in — but that is for paying subscribers of your content, not a pre-launch waitlist with referrals and broadcasts.
GetWaitly's widget drops into Ghost with two lines of code, and Ghost's Code Injection makes it easy. Here is how to add a waitlist to Ghost — a Ghost waitlist in about five minutes.
The short answer
Add the script to Settings → Code Injection → Site Footer, then put the container div where you want the form using an HTML card in a post or page. Ghost also supports per-post code injection. Total time: 5 minutes.
What you need
- A GetWaitly account with a waitlist created (free plan covers 100 subscribers).
- Your waitlist's public ID from the Widget/Embed section of the dashboard.
- A Ghost site. Code Injection and the HTML card are available without editing your theme, on Ghost(Pro) and self-hosted Ghost.
Step 1 — Get your embed code
In GetWaitly, open the waitlist and go to Widget. Copy:
Script tag:
<script src="https://getwaitly.com/widget.js" defer></script>
Container div:
<div class="gw-widget" data-waitlist-id="YOUR_WAITLIST_ID"></div>
Use the waitlist's public ID, not the URL slug.
Step 2 — Load the script site-wide with Ghost Code Injection
- In Ghost admin, go to Settings → Code Injection (under Advanced on newer versions).
- Find the Site Footer box.
- Paste the script tag:
<script src="https://getwaitly.com/widget.js" defer></script>
- Save.
The Site Footer code is injected before the closing </body> on every page, so the widget is available everywhere without touching your theme.
Step 3 — Add the form to a page or post
Ghost's editor supports raw HTML through an HTML card:
- Edit the page or post where the waitlist belongs.
- Type
/htmland press Enter (or click + and choose HTML). - Paste the container div:
<div class="gw-widget" data-waitlist-id="YOUR_WAITLIST_ID"></div>
- Preview or publish. The form renders where the card sits, styled with your waitlist branding.
Because the script is loaded site-wide in Step 2, the card only needs the div.
Alternative — per-post code injection
If you only want the script on one post, use Ghost's post-level Code Injection instead of the site-wide footer:
- Open the post and click the settings icon (top right).
- Expand Code Injection.
- Paste the script into Post Footer, and add the div with an HTML card in the body.
This keeps the script off every other page.
Step 4 — The popup variant (optional)
With the script loaded site-wide, add a trigger button with an HTML card:
<button class="gw-trigger" data-waitlist-id="YOUR_WAITLIST_ID">Join waitlist</button>
Clicking it opens the form in a modal — useful in a welcome post or a call-to-action box.
Step 5 — Test it
Ghost renders HTML cards and Code Injection on the published site (and usually in preview). Open the live page, submit a test email, and confirm the subscriber appears in your GetWaitly dashboard.
Ghost-specific notes
- Code Injection is not theme editing. Your code survives theme changes because it lives in settings, not theme files. Prefer it over editing a theme's
.hbsfiles. - Custom themes must call
{{ghost_foot}}. Code injection renders through Ghost's{{ghost_head}}and{{ghost_foot}}helpers. Official themes include both; a stripped-down custom theme that drops them will save your snippet and never print it. - HTML card vs Markdown card. A Markdown card may escape raw HTML. Use the HTML card for the container div.
- Ghost members vs a waitlist. Ghost's members feature manages signups for your publication. GetWaitly is for pre-launch product interest with referral links and broadcast emails. They can coexist.
- Do not load the script twice. If it is in the Site Footer and again in a post, remove one.
Alternative: the hosted page
If you would rather not touch code, publish GetWaitly's hosted page at getwaitly.com/w/your-id and link to it from a Ghost post or your navigation. The signup happens on GetWaitly's page. You can also embed it with Ghost's native /embed card using the hosted page URL.
FAQ
Does GetWaitly work on Ghost?
Yes. A waitlist on Ghost takes two settings and one card: load the widget script via Settings → Code Injection (Site Footer), then add the container div with an HTML card. Ghost injects the code on every page without theme edits.
Do I need a paid Ghost plan?
Code Injection and the HTML card are core Ghost features. Code injection has no plan gate: it works on every Ghost(Pro) tier, including Starter, and on self-hosted Ghost. (What Starter does gate is custom themes — so the HTML-card route is the right one there, not theme-file editing.) GetWaitly is free to start (100 subscribers) with paid plans from $5/mo.
Why is my Ghost HTML card not rendering the form?
Check three things in order. First, that the site-wide script is saved in Code Injection → Site Footer and that you used an HTML card, not a Markdown card. Second, that the data-waitlist-id matches your waitlist exactly. Third — and this is the one that catches custom themes — that your theme's default.hbs actually calls the {{ghost_foot}} helper. Code injection prints through {{ghost_head}} and {{ghost_foot}}; if a theme omits them, your script is saved but never rendered. Official Ghost themes include both.
Can I add a waitlist to just one Ghost post?
Yes. Use the post's Code Injection → Post Footer for the script and an HTML card for the div. This keeps the widget off other pages.
Should I use Ghost members or GetWaitly?
They solve different problems. Ghost members are for subscribing to your publication. GetWaitly is a pre-launch waitlist with referral tracking, queue positions, and broadcast emails. Use Ghost members for content, GetWaitly for launch interest.
Related guides
-
Add a Waitlist to Your Website: Every Platform Guide — the full directory of platform guides
-
How to Add a Waitlist to WordPress — the Custom HTML block method
-
How to Add a Waitlist to Any Website — the generic HTML embed
-
Waitlist Email Templates You Can Copy Today — what to send subscribers before launch
-
7 Best Waitlist Tools for Solo Founders in 2026 — the full comparison
The simple, affordable waitlist tool for founders and makers. Start free in 5 minutes — no credit card required. Try GetWaitly free →

written by
Aymane E.
Founder of GetWaitly. I write about validating ideas, pre-launch, and growth from building a waitlist tool as a solo founder.
Follow on X