You have a newsletter idea, a name, and no first issue. Setting up Beehiiv or Substack today feels like progress, but it creates a form that promises content you have not written, on a platform you picked before you knew whether anyone cared.
A newsletter waitlist flips that order. You collect addresses first, with a form that says exactly what is coming, and you choose the sending tool after you have a list to put in it.
Put a waitlist form on a one-page site that names the newsletter, the frequency, and the first issue date. Each signup gets a referral link they can share. On launch day, export the six-column CSV and import it into whichever email tool you pick. The waitlist stores and attributes signups. It does not send mail.
Why a Newsletter Needs a Different Waitlist Page
A product waitlist can get away with "something is coming." A newsletter cannot. The person is agreeing to receive email from you indefinitely, so the page has to answer three things before they type an address:
- What the newsletter covers, in one sentence a stranger understands.
- How often it arrives, as a day of the week or a number per month.
- When issue one lands, with a real date.
The date does two jobs. It gives people a reason to sign up now instead of "later," and it gives you a deadline. Newsletters that say "launching soon" have a way of staying that for months.
Step 1: Add the Form
Create an OperatorStack project and enter the domain of your landing page. Copy the script tag:
<script src="https://operatorstack.dev/os.js" data-project="pk_abc123"></script>
Place the widget where the pitch ends:
<h1>The Friday Teardown</h1>
<p>One SaaS landing page, rebuilt in public. Every Friday. First issue: November 14.</p>
<div data-os-widget="waitlist"></div>
The widget renders in a Shadow DOM, so your page CSS cannot break it. Only the first data-os-widget="waitlist" on a page renders.
If you want the signup to read as a newsletter form instead of a generic waitlist, edit the button text and success message in the Waitlist settings tab. "Get issue one" converts for a different reason than "Join waitlist": it names what the person receives.
Step 2: Give Every Subscriber a Referral Link
Newsletters grow mostly by forwarding, and a forward without a link is a signup you cannot attribute. Every waitlist signup gets a referral code. The default widget shows share links after signup. If you build your own form, you get the same thing from the SDK:
const { referral_code } = await OperatorStack.joinWaitlist({
email: form.email.value,
name: form.name.value,
});
const links = OperatorStack.getShareLinks(referral_code, {
text: "The Friday Teardown starts Nov 14. Join the list:",
});
// links.twitter, links.linkedin, links.email, links.whatsapp, links.copy
getShareLinks() builds the URL from the current page's origin and path, so a form on / shares your homepage and a form on /teardown shares that page. Decide which page you want referred visitors to see before you build, because that is the page the link points at.
Check the referral count per person in the Waitlist tab a week in. The two or three people who sent others are your first readers who will answer an email. Write to them personally before issue one.
Step 3: Send Traffic and Watch the Source
A source column is the cheapest newsletter research you can do. If 40 of your first 60 signups came from one Reddit thread and 3 from your newsletter's own X account, you know where issue one's audience actually lives, and what to write about for them.
Add ?utm_source= to every link you post, and the signup keeps its source. Segmenting by source later lets you open issue one differently for each group instead of sending everyone the same intro.
Step 4: Pick the Sending Tool After You See the List
Most newsletter tools price by subscriber count, and the cheapest plan that fits 80 people is not the one that fits 8,000. Waiting costs you nothing, since the waitlist holds the list in the meantime.
When you pick, the hand-off is one file. In the Waitlist tab, export the CSV:
| Column | What it holds |
|---|---|
email | The address, and the dedupe key in your email tool |
name | Whatever the person typed, often empty |
source | Where the signup came from |
referral_code | Their unique code |
referrals_count | How many signups they referred |
created_at | UTC timestamp with no Z suffix |
Import it into Beehiiv, Loops, Mailchimp, or Buttondown. Map email and name, and import source and referrals_count as custom fields if the tool allows, so you can segment the first send by who referred whom. The export guide covers the import quirks per tool.
The waitlist does not sync to your email tool in the background. If people keep signing up after you import, the second batch will not appear in your newsletter tool until you export again or run a nightly pull. Re-importing the full CSV is safe, since email tools dedupe on the address.
Step 5: Write the Welcome Page Like Issue Zero
After submitting, a subscriber sees your success message. This is the only moment you control before issue one, so use it:
- Repeat the first issue date.
- Tell them to check their inbox for a note from you, and what the sender name will be.
- Give them the share link, with one line on why forwarding helps.
Telling people the sender name matters more than it sounds. Your first issue comes from a tool they have never heard of, and "from The Friday Teardown" is the difference between opened and ignored.
Common Mistakes
- No date on the page. "Coming soon" gives no reason to act now and no deadline for you.
- Promising weekly with no draft written. Write issue one before you collect the first hundred. A late first send on a new list costs more than a late launch page.
- Importing before the form said "newsletter." If the form said "waitlist" and the first email is a newsletter, some of the list will mark it as spam. Say what they will receive.
- Treating the count as the result. 60 people who open issue one beat 600 who never do. The list proves nothing until you send.
Frequently Asked Questions
Do I need a newsletter platform before I start a newsletter waitlist?
No. A waitlist only needs to store an email address and tell the person what happens next. You can pick Beehiiv, Loops, Mailchimp, or Buttondown after you have seen how many people sign up, then import the list in one CSV.
Can the waitlist send my first issue?
No. OperatorStack stores signups, referral codes, and sources. It has no newsletter sending and no outbound integration with email tools. Sending happens in the tool you import the list into.
How do I move waitlist subscribers into my newsletter tool?
Export the CSV from the Waitlist tab. It has six columns: email, name, source, referral_code, referrals_count, and created_at. Every email tool dedupes on the address, so you can import the same file again later without creating duplicates.
How many subscribers should I have before sending issue one?
There is no threshold. Issue one is how you find out who actually reads. Send it to whoever is on the list, and judge the list by replies and opens on that issue, not by the count before it.
Is it okay to email people who joined a waitlist?
Only if the signup form told them what they would receive. Say it is a newsletter, say how often, and give the first issue date. That wording is your consent record, and it is also what keeps the first issue out of spam folders.