BForms
Back to Templates
Template Tutorial

Build a waiting list form

A waiting list form helps you capture early interest before your product launches. This tutorial shows you how to create a high-conversion form that collects email addresses and optional segmentation data, protect it from spam, and embed it on your landing page.

What you will build

  • A minimal form with two fields: email (required) and role (optional select).
  • Honeypot spam protection to keep your list clean from bot signups.
  • A redirect to a custom thank-you or confirmation page.
  • Segmentation data so you can prioritize outreach by role.
1

Create the form in your dashboard

Log in to your BForms dashboard and click New Form. On the Settings tab, give your form a name like Waiting List or Early Access Signup. This name is only visible in your dashboard.

2

Set a redirect to your thank-you page

In the Redirect URL field, enter the URL where visitors should land after signing up. For a waiting list, this is often a page that confirms their spot and sets expectations:

example
https://yoursite.com/thanks

A good thank-you page for a waiting list might include the visitor's queue position, a share link so they can refer others, or an estimated launch date. If you leave the redirect URL empty, BForms will show a generic success message.

3

Configure your fields

Switch to the Fields tab and add the fields below. Waiting list forms convert best when they are short, so start with just two fields. You can always add more later.

EmailEmailRequired

The only truly essential field. Uses the email input type for built-in browser validation.

name: emailplaceholder: you@example.com
SelectRole

An optional select field that lets you segment signups. Useful for prioritizing outreach to founders, product managers, or engineers.

name: roleplaceholder: Select your role
FounderProductEngineeringMarketingOther

Why keep the form short?

Every extra field reduces conversion. For a waiting list, your primary goal is capturing the email address. The role field is worth the slight friction because it gives you actionable segmentation data. Avoid adding fields like "company name" or "phone number" unless you have a specific use for them at this stage.

4

Enable spam protection

Back on the Settings tab, enter a name for the Honeypot Field. This adds a hidden field to your form that bots will fill out but real visitors will not. Any submission that includes a value for this field is automatically discarded.

The default suggestion is _honeypot. You can use any name you like — just make sure it matches the hidden input in your HTML (shown in Step 6).

Spam protection is especially important for waiting list forms because they are typically placed on public landing pages with high traffic. Without a honeypot, your list can quickly fill up with fake signups.

5

Restrict allowed domains

In the Allowed Domains field, enter the domains where this form will live. This prevents anyone from copying your form snippet and collecting signups on a different site.

allowed domains
yoursite.com, www.yoursite.com

Leave this empty during development so you can test from localhost. Add your production domains before you launch.

6

Embed the form on your landing page

Click Create Form to save your endpoint. BForms will generate a unique URL and code snippets. Copy the HTML below and paste it into your landing page. Replace your-form-slug with the actual slug from your dashboard.

waiting-list.html
<form action="https://bforms.dev/api/f/your-form-slug" method="POST">
  <label for="email">Email</label>
  <input type="email" id="email" name="email" placeholder="you@example.com" required />

  <label for="role">Role (optional)</label>
  <select id="role" name="role">
    <option value="">Select your role</option>
    <option value="Founder">Founder</option>
    <option value="Product">Product</option>
    <option value="Engineering">Engineering</option>
    <option value="Marketing">Marketing</option>
    <option value="Other">Other</option>
  </select>

  <!-- Honeypot field - do not remove -->
  <input type="text" name="_honeypot" style="display:none" tabindex="-1" autocomplete="off" />

  <button type="submit">Join the Waitlist</button>
</form>

Inline vs. full-page form

For maximum conversion, embed the form directly on your landing page hero section rather than linking to a separate page. Visitors should be able to sign up without scrolling or navigating away. If you are using a single-page app, consider the JavaScript snippet from your dashboard to submit via fetch without a page reload.

7

Test and launch

Before sharing your landing page, run through these checks:

  • Submit a test signup and confirm it appears in your BForms dashboard.
  • Verify you are redirected to your thank-you page after submitting.
  • Test the honeypot by temporarily making it visible, filling it in, and confirming the submission is discarded.
  • Check that the role select value is captured correctly in the dashboard.

Once everything looks good, share your landing page and start collecting signups. Every submission is stored in your dashboard where you can review, filter, and export them.

Tips and next steps

Track campaign sources

Add a hidden input like <source> with a value that identifies where the signup came from (e.g. 'twitter', 'producthunt'). This helps you measure which channels drive the most signups.

Segment by role

Use the role field to prioritize your outreach. Founders and product managers may be your best early adopters and can give valuable feedback.

Use fetch for SPA embedding

If your landing page is a single-page app, use the JavaScript snippet from your dashboard to submit via fetch. This avoids a full page reload and lets you show a success message inline.

Enable email notifications

Configure a notification channel on the form detail page in your dashboard. You will receive an email for every new signup so you can follow up quickly.