PortForm
All use cases

Build a waitlist without building a backend.

A landing page and a form is all a waitlist needs. PortForm is the part behind the form: every email is stored, forwarded to you, and protected from bots — no server to stand up, no database to wire.

Your form

Plain HTML on your site

PortForm

Stored · spam filtered · emailed

Your inbox

Every submission, with Reply-To set

Dashboard

Searchable, exportable to CSV

Integrations

Slack, Sheets, CRM, webhooks

The problem

You have a page and an idea, not a backend. Spinning up a database, an API route and a bot filter just to catch a list of emails is a week of work before the first signup lands.

How PortForm solves it

Point a plain HTML form at PortForm. Each signup is stored and emailed to you the moment it arrives, so you can watch the list grow in your inbox and export the whole thing to CSV when it is time to send the launch email.

A form you can copy

Point this at PortForm and it works.

Replace YOUR_ACCESS_KEY with the access key from your dashboard. Create one free. The endpoint and the honeypot are already wired in.

What you get

The features this use case leans on.

Zero-JS form

A plain <form action> works — no fetch, no framework, no build step. Drop it into any landing page.

Every signup stored

Emails are persisted whether or not the notification sends, then exported to CSV when you launch.

Bot protection

A built-in honeypot on every plan; hCaptcha free, Turnstile and reCAPTCHA on Pro, so your list is people not scripts.

Instant confirmation

Pro

Turn on the autoresponder to email each signup a "you’re on the list" the moment they join.

Route it onward

Integrations that fit this use case.

Google SheetsNotionSlackWebhooks

Integrations are a Pro feature. On any plan, every submission still reaches your inbox and dashboard. See plans.

Why PortForm

Why it fits waitlist forms.

  • Live in minutes: paste a form, get the emails.
  • No backend, no database, no server to pay for while you validate.
  • Export the whole list to CSV the day you launch.

Build a waitlist without building a backend.