Skip to main content
20% off 3 months · code LAUNCH20 · until 31 October

How do I add a waitlist to a Lovable app?

19 September 2026 · by Nordva, who make Nordva Launch

The short answer

Copy your publishable key from Nordva Launch, paste the prompt below into Lovable's chat with the key at the end, check the form in the preview, and publish. Every signup is stored with where it came from and gets a receipt email. The publishable key can add signups but never read them, so it's safe in browser code.

The prompt for Lovable
Add a waitlist signup form to the home page, using Nordva Launch.

1. Where the form should appear (the hero of the home page), render this element, with my key from the end of this message in place of MY_KEY:
   <nordva-waitlist data-key="MY_KEY" data-button="Join the waitlist"></nordva-waitlist>
2. In the same component, load https://cdn.nordva.dev/v1/waitlist.js once, after the element is on the page (for example, append a script tag in an effect). Don't add this script to the page head.
3. If TypeScript complains about the nordva-waitlist element, declare it as an intrinsic element. Don't replace it with a form of your own.
4. My key starts with nv_pub_live_. It is a publishable key, made for browser code: it can add signups but can't read them. Put it in the code as it is. Never put a key that starts with nv_live_sk_ in browser code.
5. Don't change anything else. Tell me which files you changed.

My publishable key:

Why the source matters more than the count

A waitlist tells you people want the thing before you finish it. Where each person came from tells you where to launch: if most signups came from one subreddit and none from X, that’s where your launch post goes. A source can only be recorded when the signup happens, never afterwards, so it’s worth having from the first signup.

Step by step

  1. Get your publishable key. In Nordva Launch, open Developer → API keys. Every new account gets one publishable key, shown once when the account is made. If you didn’t keep it, revoke it and click New publishable key; copy the new one straight away, because it’s only shown once. The Free plan allows one publishable key per project at a time, which is why the old one goes first.

  2. Paste the prompt. Copy the prompt above into Lovable’s chat and paste your key at the end. This works on every Lovable plan: on Free the code editor is read-only, but the chat can still change the code.

  3. Try it in the preview. The form appears where you asked. Join with your own email: the signup shows under Waitlist in Launch, and a receipt arrives in your inbox.

  4. Publish. The live site only changes when you open the Publish dialog and click Publish changes.

Is a key in browser code safe?

Lovable’s docs say never to paste API keys into Lovable, and to keep them in its secrets store so only backend code uses them. That’s the right rule for secret keys. A publishable key is a different kind of key, like Stripe’s: it’s made to sit in a web page. Anyone can read it, and all it lets them do is add a signup, a feedback message or a changelog subscriber. It can’t list your waitlist, export it or delete anything.

Your secret key (it starts with nv_live_sk_) is the one that can read everything. It never goes in browser code, and a waitlist form doesn’t need it.

What each signup records

The referring site’s hostname, UTM tags from the link (utm_source, utm_medium, utm_campaign) and the page the person landed on. The form sets no cookie and stores nothing in the browser; it reads what the page already knows, once, when the person joins. If you also add Launch’s analytics script, a signup carries the visitor’s first visit instead, which counts when someone reads your post, leaves, and comes back a week later to sign up.

Tag the links you post, such as ?utm_source=reddit&utm_campaign=launch, and each signup on Launch’s Waitlist page shows the post it came from.

What happens to the people who join

Everyone gets a receipt email with an unsubscribe link, on every plan. On Indie and up, people confirm their email first (double opt-in), and on launch day you can send one announcement to everyone who hasn’t unsubscribed, and see afterwards how many of the people you told went on to pay.

The Free plan holds 100 signups per project; Indie holds 2,500. There’s no time limit on Free and no card needed.

No code at all

If you’d rather not touch the app yet, Launch also hosts a waitlist page at launch.nordva.dev/waitlist/your-project. Share that link, and add the form to your Lovable app later; both fill the same list.

When Launch is the wrong tool

If you're collecting emails for a newsletter rather than for a product launch, a newsletter tool fits better: Launch sends a receipt and one launch announcement, not a series of emails.

Lovable's own docs, checked 19 September 2026

Builders change often. If a step no longer matches what you see, tell us and we will fix the page.

Also asked as
  • How do I collect emails in Lovable?
  • How do I build a coming soon page with Lovable?
  • Lovable waitlist form without Supabase
Read next
Start free Free plan, no time limit · No card