TL;DR: A hosted waitlist page is a standalone page the waitlist tool builds and serves for you: fastest to ship, distraction-free, and with a custom domain it can live on your own address. An embedded widget puts the signup form inside your own site: the visitor never leaves your domain, but you need a site first. Use the hosted page when you don't have a site yet, or as the clean destination for a Product Hunt, paid-social or cold-outreach campaign. Embed the form when your brand site already has traffic. Most launches end up running both: the form embedded on the brand site, the hosted page as the shareable campaign URL, both feeding one list. In LaunchList, pre-launch waitlist software for founders, both modes are on every plan, run the same referral, spam and email pipeline, and land in one deduplicated audience; a custom domain for the hosted page starts on the Collect plan.

Founders evaluating LaunchList (and most waitlist tools) hit the same fork early: do I use the hosted waitlist page, or embed the form on my site? It sounds like a technical detail. It isn't. The mode you pick shapes your conversion rate, your SEO footprint, your brand trust, and how fast you can iterate. This guide lays out the trade-off honestly, and shows how each mode works in LaunchList today.

The two modes, defined

Hosted waitlist page. A standalone page the waitlist tool hosts for you. In LaunchList every project comes with one, built in a block editor: you pick finished sections (hero, benefits, steps, questions, pricing, countdown, footer and more), write the words, and set one theme for the whole page: a style, your accent color, a font pairing and a corner shape. Five sections read your project's own data: the signup form, a live signup counter, the referral leaderboard, reward milestones and your latest updates. You can start from a template (SaaS beta, Mobile app, AI tool, Event or course, Pre-order, One screen), describe your product in a sentence and let AI draft the page, or start blank. No code, no site required. It publishes at your-slug.launchlist.page, and you can connect your own domain.

Embedded widget. A snippet you paste into a page on your own site, and the signup form renders inside your existing design. In LaunchList this is the inline embed: one element where the form should appear, plus a loader script added once in your <head>:

<div data-launchlist-form="frm_YOUR_FORM_ID"></div>
<script src="https://embed.getlaunchlist.com/v1/embed.js" async></script>

The visitor never leaves your domain. The same loader also opens the form as a popup from any button, can take over a form you designed yourself (you keep your markup and CSS, LaunchList handles submission, validation and referral attribution), and mounts the form in React, Vue or Svelte apps. If your CMS strips JavaScript, a plain HTML form can post straight to LaunchList with no script at all. (LaunchList also has widgets in a narrower sense: a live signup counter, a referral leaderboard, a milestone bar and a launch countdown you can place on any site. More on those below.)

Both modes run the same pipeline once a signup lands: deduplication, a Contact Trust verdict on every signup, referral credit, the verification email, webhooks and automations. What differs is where the form lives and who owns the URL.

Comparison at a glance

Dimension Hosted page Embedded widget
Time to live Minutes to an hour: edit the starter page, publish, share the link 10 minutes on a finished site, longer if you're building one
Design control Section layouts plus one page theme (style, accent, fonts, corners) Full control of the page around the form; the form follows your Brand settings, or keep your own form markup
Domain / SEO ownership LaunchList address by default (not indexed); your own domain from the Collect plan up, where it can be indexed Your domain
Brand trust (mature brand) Lower on a tool address, close to equal on your own domain Higher
Brand trust (new / no site) Higher (looks intentional) N/A: nowhere to embed
Conversion on cold social traffic Often higher: distraction-free Depends on surrounding page
Conversion on warm branded traffic Slightly lower if it means an off-domain jump Higher: no context switch
Analytics attribution LaunchList measures page visits that signed up; add your own GA4, Tag Manager, Meta Pixel, PostHog, Plausible and other tags, with a consent banner Your own analytics on your site, plus LaunchList's signup and source data
Custom domain / SSL From the Collect plan up, certificate issued and renewed automatically Native: your SSL
CSS / JS conflicts None Rare: the form renders in a shadow root your theme's CSS can't reach
Mobile performance Server-rendered, with a phone preview in the editor Depends on your site
Iteration speed Fast: edit the draft, publish when ready Page copy is tied to your site's deploy cycle; form fields update everywhere from LaunchList
Referral attribution Built in Built in: the loader stores ?ref= for 90 days across your whole site (the no-JavaScript form needs the loader on the page for this)
Spam protection and trust verdicts Same pipeline Same pipeline
Popups, slide-overs, exit intent Not needed: the form is the page Popup or slide-over from any button; exit, delay or scroll triggers by attribute
LaunchList badge On the Free and Collect plans; removed on the Launch and Grow plans Your page is yours; the status page and emails follow the same plan rule
Languages Page chrome, status page and confirmation emails in 17 languages; your own copy is yours to write Status page and confirmation emails in 17 languages; form labels are the words you write

The two rows that swing most decisions are domain / SEO ownership and time to live. Everything else tends to fall out from there.

When the hosted page wins

Pick the hosted waitlist page when:

1. You don't have a site yet. This is the single most common case. A founder has an idea, wants to validate demand, and doesn't want to spend a weekend setting up a Webflow, Framer or Squarespace site first. In LaunchList the starter page already exists when you sign up: a one-screen page with your logo, your project's name, one line and the signup form. Change the words, publish, and you are collecting the same signal a full site would.

2. You're running a fast launch (Product Hunt, paid social, cold outbound). Cold social traffic is ruthless. Every extra element on the page (nav, footer, blog link, pricing) is an opportunity to bounce. A hosted page built for one job is distraction-free by construction. See our landing page examples for why minimal pages convert well on cold traffic.

3. You're non-technical. No engineer, no designer, no CSS debugging, no deploy cycles. Change the headline in the editor, or type "make the headline shorter" into the box under the page and let the assistant do it, then publish.

4. You're testing an idea. The hosted page is a cheap experiment. If the idea doesn't catch, you've spent an hour, not a weekend. This is the standard coming soon page pattern: ship, validate, decide.

5. You want a shareable URL that doesn't "smell" like your half-finished marketing site. Early-stage marketing sites are often rough. A clean hosted page can feel more trustworthy than a broken hero section and 404s under your own domain.

6. You want the hosted page on your own domain. Connect a domain like launch.yourbrand.com on the Collect plan (one custom domain), the Launch plan (three) or the Grow plan (unlimited). Add the one DNS record LaunchList shows you, and the HTTPS certificate is issued and renewed automatically. That removes the "tool subdomain" concern entirely: you keep the fast-ship simplicity with your own name on the URL, and the launchlist.page address keeps working, so links you already shared don't break.

When the embedded widget wins

Pick the embed when:

1. You already have a brand site with traffic. Every visitor who clicks off-domain to sign up is a small conversion leak. If your site converts traffic today, keep the signup form on-site.

2. SEO for your brand site is part of the plan. A page on a tool's address cannot build domain authority for your brand, and a LaunchList page on its launchlist.page address asks search engines not to index it at all. If the long-term strategy involves your main site ranking for [your category] waitlist or [your brand] early access, the signup needs to live on your domain. An embed on your own site does that, and so does a hosted page on your own domain (from the Collect plan up), which is server-rendered so crawlers get real HTML.

3. Your brand design is a differentiator. Premium brands (designer tools, high-end SaaS, creator products) lose a subtle trust signal when the signup flow jumps to a page that doesn't look like theirs. The embed keeps the brand experience continuous, and if the stock form looks like a transplant, the enhance method lets you keep your own form markup and design.

4. You want your own analytics in charge. GA4, PostHog, Segment, Umami and server-side tracking all work natively when the form is on your site, alongside the signup and source data LaunchList records.

5. You have a custom funnel. Pricing page, then feature page, then waitlist form, then thank-you page. If the signup is one step in a broader journey, it has to live inside the journey, not off to the side.

The inline embed works on any site builder that allows custom HTML. LaunchList's docs have step-by-step guides for Carrd, Framer, Webflow, WordPress, Squarespace, Shopify, React and plain HTML, and our own walkthroughs cover the Webflow setup, Squarespace setup and WordPress setup.

The hybrid pattern (what most launches actually run)

After a few dozen launches, a pattern emerges: founders don't actually pick one. They run both.

The typical setup:

  • Brand site (yourproduct.com): The form embedded on the homepage or a dedicated /waitlist page. Primary destination for organic, SEO and branded traffic. This is where Google ranks you.
  • Hosted page (a LaunchList address, or a subdomain like launch.yourproduct.com): The shareable "clean room" for cold traffic: Product Hunt launch URL, paid social landing page, X posts, Reddit links, cold outbound. Distraction-free and built for conversion.
  • Widgets anywhere: A live signup counter next to the form, or a referral leaderboard on your homepage, from the same project. Widgets are on every plan, show aggregate numbers only, and never expose an email address or phone number.

The hosted page is the funnel URL; the embed is the brand URL. Both feed the same project, so referrals, positions and the leaderboard work identically across entry points, and someone who signs up through both is one contact, not two. When a visitor arrives on a referral link, the loader stores the referral code (and any UTM parameters) in their browser for 90 days, so the referrer still gets credit if the friend reads three other pages and signs up from your homepage next week.

For campaigns running on the SaaS pre-launch playbook, the hybrid setup is almost always the right answer. It takes under two hours to set up both, and the lift on cold-traffic conversion usually pays for the extra setup on day one.

Conversion rate: an honest framing

Founders often ask which mode "converts better." The honest answer: it depends on traffic temperature.

Cold social and paid traffic. Hosted pages often convert higher on cold clicks because they're single-purpose and low-distraction. A visitor from a Product Hunt launch or a paid X ad lands, reads one headline, sees one call to action, and signs up or bounces. No surrounding marketing site to click through.

Warm and branded traffic. Embedded forms tend to convert higher on warm traffic: someone who already trusts your brand, navigated from your homepage, and is ready to commit. An off-domain jump introduces a small trust wobble that costs a measurable percentage.

Neither difference is huge in isolation. Both modes routinely land in the 20 to 45% signup conversion range on well-designed waitlist pages, with the specific number dominated by headline, call to action and audience match, not by hosted versus embedded. If your numbers are well below that band, the headline or audience match is almost always the fix: see why is my waitlist not converting. On the hosted page, LaunchList's Analytics shows this number directly as the share of page visits that signed up, against the period before.

How to set up each mode in LaunchList, step by step

Every method below is on every plan, the Free plan included. The form IDs in the snippets are examples; copy your own from Embed & API, Your website.

Hosted launch page

  1. Open Pages and press Edit page on the Landing page. The starter page is already there. To start over, open Templates in the editor header and pick one of six (your previous draft can be restored), or describe your product in one sentence and let the AI write the page. AI writing is free on every plan during the beta and never invents customers, quotes or numbers.
  2. Edit the words and sections. The Layers panel lists the blocks; Add block offers 19 types, including the signup form, live signup counter, referral leaderboard, reward milestones, latest updates and a countdown.
  3. On the Design tab pick one of eight styles (Studio, Midnight, Editorial, Blueprint, Poster, Calm, Aurora, Luxe), your accent color, a font pairing and corners. Check the phone view.
  4. Under Embed & API, Hosted page, Search and sharing, set the title, description and a 1200x630 share image (one is generated if you skip it).
  5. Press Publish. The panel lists what changed since the last publish; nothing goes live until you confirm. Share a signed preview link first if you want feedback.
  6. Optional, from the Collect plan up: Embed & API, Hosted page, Custom domain, Set up. Add the one DNS record shown; HTTPS is issued automatically. Only pages on your own domain can be indexed.
  7. Optional: add your own tracking tags under Project settings, Privacy & spam.

You can change the page address any time under Embed & API, Hosted page, Page address; the old address forwards permanently.

Inline embed

One element where the form goes, one loader in your <head> (once per page, however many forms and widgets you add):

<div data-launchlist-form="frm_8Kd2Qm4Rp9"></div>
<script src="https://embed.getlaunchlist.com/v1/embed.js" async></script>

The form renders in a shadow root, takes its look from Project settings, Branding, and updates itself when you change fields in LaunchList.

Popup or slide-over

Any element can open the form in an overlay. Add data-variant="slideover" and data-position="right" for a side panel:

<button type="button" data-launchlist-popup="frm_8Kd2Qm4Rp9">Join the waitlist</button>

For an automatic popup, add data-trigger="exit" (desktop exit intent), "time" (with data-delay in seconds, default 5) or "scroll" (with data-scroll as a percentage, default 50). It shows a visitor at most once per 7 days by default and never again after they sign up. The dashboard's snippet generator only writes click buttons, so these attributes are added by hand. From JavaScript, LaunchList.popup('frm_8Kd2Qm4Rp9').open() opens it.

Enhance your own form

Keep your markup and CSS; LaunchList takes over submission, validation, error messages, referral attribution and success routing:

<form data-launchlist-enhance="frm_8Kd2Qm4Rp9">
  <input type="email" name="email" placeholder="[email protected]" required />
  <button type="submit">Join</button>
</form>

Match each input's name to the field key shown in the dashboard. Up to 20 extra inputs are captured as custom attributes.

Plain HTML, no JavaScript

For CMS templates that strip scripts, post straight to the capture endpoint (copy the exact action from the dashboard):

<form action="https://embed.getlaunchlist.com/f/frm_8Kd2Qm4Rp9/submit" method="POST">
  <input type="email" name="email" required />
  <input type="hidden" name="_channel" value="html" />
  <button type="submit">Join</button>
</form>

Set the form's success behavior to the status page or a custom URL, because a no-JavaScript submit needs a redirect to land on. Add the loader to the page if you can: without it, the form can't see ?ref= and referrals aren't credited.

React, Vue or Svelte

import { useEffect } from 'react';

export function Waitlist() {
  useEffect(() => {
    window.LaunchList?.mount('#waitlist', { form: 'frm_8Kd2Qm4Rp9' });
  }, []);
  return <div id="waitlist" />;
}

Social-proof widgets

<div data-launchlist-widget="counter" data-project="acme" data-label="founders already in"></div>

Swap counter for leaderboard, milestone (with data-goal and data-reward) or countdown. Widgets publish aggregate numbers only; a leaderboard shows the display name your form collected or a masked identifier. The countdown needs a launch date in Project settings, General.

A third mode: headless (your backend, or an AI agent)

If the signup happens on your server, skip the browser entirely and create the contact through the REST API. One call returns the referral code, live position and trust verdict:

curl https://api.getlaunchlist.com/v1/contacts \
  -H "Authorization: Bearer llk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "project": "prj_7Qk2mN4pR8", "email": "[email protected]" }'

The API has 53 operations described by a public OpenAPI spec, and 27 signed webhook events tell your systems when someone signs up, verifies, refers or redeems an invite. If you work with an AI coding agent, LaunchList's MCP server (35 tools, on every plan) lets Claude, Cursor or ChatGPT read your forms, capture a signup through the real pipeline to check your setup, and draft page changes while you build; page edits stay drafts until you publish.

Pitfalls of each mode

Hosted page pitfalls

1. No SEO on a tool address. A LaunchList page on launchlist.page stays live and shareable but asks search engines not to index it. Fine for campaigns, a real problem if you want organic traffic pre-launch. Connecting your own domain (from the Collect plan up) is the fix: pages on your own domain can be indexed, and you control the title, description and social share image.

2. Brand discontinuity. If someone clicks from yourbrand.com to a tool address, a fraction will bounce on the domain change. A custom domain fixes this too.

3. Layout flexibility is bounded on purpose. LaunchList's editor gives you a long list of finished sections, each with a few layouts, under one theme. That covers a five-section narrative easily, and it is what keeps the page looking like one page. What it won't do is give one section its own colors or spacing, or run fully custom code. If you need a bespoke layout (an unusual video hero, a multi-column comparison built your way), a custom marketing page plus the embed is still the right answer.

4. Trust signals from the URL itself. For some enterprise and high-ticket audiences, a tool-subdomain URL feels "startup-y." For indie hackers and consumer apps, this is a non-issue. The small LaunchList badge on pages for the Free and Collect plans is the other version of this; the Launch and Grow plans remove it.

Embedded widget pitfalls

1. Styling lives in LaunchList, not your CSS. The flip side of the shadow root: your theme can't break the form, but you can't restyle it from your stylesheet either. Colors, font, corner radius and button style come from your Brand settings. If you need the form to match your design system exactly, use the enhance method and keep your own markup.

2. Slower iteration on the page around the form. Changing a headline on a hosted page takes 30 seconds. Changing a headline on your own site usually means editing the CMS, waiting for a deploy, and clearing a CDN cache. The form itself is the exception: change a field in LaunchList and every embed updates, with nothing to re-paste.

3. Analytics double-counting. If you track events in both your own analytics and the tool's dashboard, numbers often disagree. Pick one source of truth for visitor-to-signup conversion.

4. Page performance. A heavily loaded marketing site can slow the form's time to interactive. If your Lighthouse mobile score is already marginal, adding any third-party script is not free. LaunchList's loader is small and loads asynchronously, which helps, and the plain HTML method needs no JavaScript at all.

5. Your sending domain still matters. Whether you use the hosted page or the embed, the confirmation emails go out the same way. Every plan sends them from a shared LaunchList sending domain with nothing to set up. On the Launch and Grow plans you can send from your own subdomain instead by adding three CNAME records, so your brand sits in the From line.

How LaunchList ships both

Worth being explicit: LaunchList treats both modes as first-class, not one as "real" and the other as a fallback.

  • The hosted launch page is on every plan, the Free plan included. Block editor, eight page styles, six templates, AI that drafts or changes the page when you ask, draft and live kept separate, and a signed preview link for feedback before you publish. Your own domain from the Collect plan up.
  • Embeds are on every plan: inline, popup, enhance your own form, plain HTML with no JavaScript, and a mount call for single-page apps.
  • Widgets (counter, leaderboard, milestone, countdown, plus a changelog embed for your updates) are on every plan too.
  • All of it shares one project: one deduplicated audience, a Contact Trust verdict on every signup, referral credit only after the friend verifies, a status page for every signup with their position and referral link, and signed webhooks and a REST API for wiring signups into everything else.

The practical recommendation: start with the hosted page for speed, embed the form on your brand site once that site exists, and run them in parallel for cold and warm traffic.

A decision tree you can run in 30 seconds

  1. No brand site yet? Hosted page. Revisit when you have a site.
  2. Brand site exists, SEO matters for your category? Embed (primary), optionally add a hosted page for cold campaigns.
  3. Running a fast Product Hunt or paid social launch? Hosted page for the campaign URL, regardless of whether the embed is also live.
  4. Non-technical solo founder, no engineer? Hosted page. Embed if and when you add a site.
  5. Premium brand, design-led product? Embed, or a hosted page on your own domain. Brand continuity matters.
  6. D2C / ecommerce drop? Embed on your ecommerce waitlist page, hosted page for ad campaigns.
  7. B2B SaaS with content marketing? Embed: see the SaaS waitlist guide.

Common mistakes

1. Picking one mode because you "have to." You don't. Both are cheap to run in parallel, and the hybrid covers more traffic types.

2. Embedding a form on a marketing page that's half-built. If your site feels rough, a hosted page converts better than a broken brand experience.

3. Obsessing over conversion rate at the wrong layer. Headline and call to action dominate. Hosted versus embedded is a secondary lever. Fix the copy first.

4. Forgetting the page after signup. Wherever the signup lives, the post-signup page (position, referral link, how many people they have brought in) is where viral growth happens. In LaunchList a waitlist form sends people to their personal status page by default, from the hosted page and every embed alike. Keep it that way unless you have a reason not to.

5. Not testing on mobile. A large share of pre-launch traffic is mobile. Check the hosted page in the editor's phone view before you publish; an embed is only as good as your site's mobile layout.

Frequently asked questions

Can I use both a hosted page and an embedded widget at the same time?

Yes, and most launches do. The hosted page is the shareable campaign URL (Product Hunt, paid ads, cold social); the embed is the on-site signup form. In LaunchList both feed the same project, so referrals and positions work identically across entry points, and the same person arriving through both is one contact.

Does the hosted page rank in Google for my brand?

Not on a tool address. A LaunchList page on its launchlist.page address asks search engines not to index it. Put the page on your own domain (from the Collect plan up) and it can be indexed: it is server-rendered, so crawlers get real HTML, and you set the title, description and share image. An embed on your existing site builds your rankings too.

Can I put the hosted page on my own domain?

Yes. The Collect plan includes one custom domain, the Launch plan three and the Grow plan unlimited, with no charge per domain. Add one DNS record and the certificate is issued and renewed automatically. A subdomain like launch.yourbrand.com works with every DNS provider. Plan prices start at $9 a month: see LaunchList pricing.

Which mode has higher conversion?

It depends on traffic temperature. Hosted pages often convert higher on cold social and paid traffic because they're distraction-free. Embedded forms often convert higher on warm branded traffic because they keep the brand experience continuous. Both routinely land in the 20 to 45% range when headline, call to action and audience match are tight.

Does the embedded widget work on Webflow / Squarespace / WordPress?

Yes. The inline embed works on any site builder that allows custom HTML, and LaunchList has step-by-step guides for Carrd, Framer, Webflow, WordPress, Squarespace, Shopify, React and plain HTML.

What about CSS conflicts with my theme?

LaunchList's embedded form renders inside a shadow root, so your theme's global CSS can't leak in and break it, and its CSS can't leak out into your page. The trade-off is that you style it from your Brand settings rather than your stylesheet. If you want your own design, keep your own form and add one attribute to enhance it.

Can I use the referral program with both modes?

Yes. Referral links, positions and the leaderboard work identically on the hosted page and the embed, on every plan. Rewards and milestones are on the Collect plan and up. Referral credit lands only once the friend verifies their email, so the leaderboard stays honest in both modes.

Is the widget slow to load?

LaunchList's loader is small and loads asynchronously, so it doesn't block page rendering, and one loader serves every form and widget on the page. On an already-heavy site it is a small additional cost like any third-party script. The plain HTML form avoids JavaScript entirely.


Ship the mode that fits your stage

If you're pre-site, pre-launch or pre-traffic, the hosted page is the right first move. Ship it today and start collecting signal. If you have a brand site with traffic, embed the form and keep the signup on your domain. And when you're running a real launch, run both.

LaunchList is pre-launch waitlist software for founders: a hosted launch page with a block editor, embeds and widgets for your own site, referrals with credit only after verification, and built-in email, all on one list. It is in beta and free to start: the Free plan holds 100 contacts, and paid plans start at $9 a month on the Collect plan, which adds your own domain. Start free →

Related reading: