All features

Signup forms

One line of HTML, and it never goes stale

Build a signup form here, paste one script tag on your site, and edit the form as often as you like — the code you pasted carries an id and nothing else, so it never needs touching again.

The problem

Most signup forms put the form's markup in the snippet you copy. Change a field, a colour or a message and the copy on your website is out of date until somebody goes back and re-pastes it — which is the most common reason an embedded form stops matching what you built.

The whole integration

The tag names a form. Everything else — the fields, the styling, the messages, the anti-spam settings — lives here and is fetched when the page loads. Edit anything and every page it is embedded on picks it up next time somebody visits.

Anywhere in your page
<script src="https://emailbump.com/f.js" data-form="frm_8f2c9a1b3d" async></script>

Eight of them already built

A new project doesn’t open on an empty page. There are eight working forms to start from — a newsletter box, an inline bar, a welcome popup, a popup with an image, a two-step popup, a sticky bar, lead capture and a waitlist — and picking one gives you a real form, not a template you then have to fill in.

Two-step is the one worth knowing about: it asks for the decision first and the address second. A single button, then the email. A small first ask converts better than a big one, and somebody who has already said yes finishes far more often than somebody handed a form cold.

It can’t fight with your CSS

The form renders inside a shadow root, so your site’s stylesheet can’t reach into it and its styles can’t leak out. That is the isolation an iframe gives you, without an iframe’s fixed height — and it means several forms can share a page, each with its own look.

Six ways to put it somewhere

The same form renders as an inline block, a popup, a slide-in or a sticky bar; as an iframe where script tags are stripped; as plain HTML that works with JavaScript off; as a React or Vue component; and as a hosted page you can link to or print a QR code of.

  • Script tag — the default, and the one to prefer
  • Popup, slide-in or sticky bar with delay, scroll-depth or exit-intent triggers
  • iframe that reports its own height
  • Plain HTML for no-JavaScript pages
  • React and Vue components, no package to install
  • Hosted page at a link you choose

Shown where it should be, to whom it should be

Rules decide which pages a form appears on — contains, exactly, starts with, ends with — with exclusions checked last, so “everywhere except checkout” is one rule rather than a list of the pages that are left.

Then who: everyone, first-time visitors, or people who have been before. And how often: until they subscribe, once ever, or every visit. A popup also picks its moment — after a delay, past a scroll depth, or when the pointer heads for the browser chrome.

Three numbers, and the gaps between them

A form counts how often it was shown, how many people filled it in, and how many became subscribers. Shown is counted when the form actually appears rather than when the page loaded, so a popup whose trigger never fires isn’t quietly inflating the denominator.

Submissions against shown is what a popup’s placement and copy are judged on. Contacts against submissions is your confirmation rate — and a widening gap there almost always means the confirmation email stopped landing, not that people changed their minds.

Consent you can actually evidence

When a form has a consent checkbox, the exact wording shown at the time is stored with the submission — along with the timestamp, the IP address and the page it was on — and repeated back in the confirmation email.

Wording changes over time. “What did this person agree to?” is the question you need answered when a complaint arrives, and it is answered without anyone having to set anything up.

Built to be pointed at by strangers

A signup form is a public endpoint that can send email, so every submission goes through a honeypot, a timing check, a signed token proving the form was really rendered, per-network rate limits, and Cloudflare Turnstile — which needs no puzzle-solving and which most visitors never see.

Disposable-address blocking is on by default and included on every plan, free ones too. And if the same address is submitted repeatedly, we don’t send it a second confirmation — that stops your form being used to flood somebody else’s inbox.

Rebrand once, not once per form

Forms inherit colours, fonts and shapes from a theme, and store only what they override. Change the theme and every form on it restyles, live, with nothing to re-embed. A footer form that just needs to be narrower keeps inheriting everything else.

What this looks like for you

The events worth sending depend on what you sell. Three shapes of business, the events each one tracks, and the segments those events make possible.

Most SaaS signup forms are asking for a trial, a demo or a changelog subscription — and the useful part is knowing which page someone was reading when they asked.

Forms worth having

Changelog subscribeEmail only, in the docs footerLowest-friction ask on the site
Demo requestEmail, name, company sizeRoutes straight to a flow
WaitlistEmail plus a hidden feature fieldOne form, many features
Pricing exit-intentPopup on the pricing page onlyCatches the ones about to leave

What it gives you

You know where they came from

A hidden field captures utm_source and the page URL

Attribution on every signup without wiring anything up

Sequences start on consent

The form-submitted trigger fires on confirmation, not on submit

Nobody gets onboarded who never confirmed they wanted it

Docs and marketing stay in sync

Both pages embed the same form id

One edit updates both

What you can build with it

  • A form you can edit without touching your website again
  • Eight working forms to start from, including a two-step popup
  • Rules for which pages it shows on, and who sees it
  • Double opt-in that sends one email, however many lists it feeds
  • Consent recorded word-for-word, automatically
  • Spam kept out without making real people solve puzzles

Try it on your own data

Free while you're under 5,000 contacts, and every feature is on every plan.

Start free