Take RSVPs without an events platform.
For a meetup, a webinar or a launch, you need names and emails and a way to reach them again. PortForm collects each RSVP, stores it, and can email the attendee a confirmation on the spot.
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
Event platforms are built for ticketing and priced for it. A free meetup just needs a signup form, a stored list, and a confirmation email, not a checkout.
A registration form posts to PortForm. Each RSVP is stored and emailed to you, an autoresponder can send the attendee their confirmation and the details, and the full list exports to CSV for your check-in sheet.
Point this at PortForm and it works.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Register</title>
<style>
*, *::before, *::after { box-sizing: border-box; }
body {
margin: 0;
padding: 32px 16px;
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
background: #f4f4f5;
color: #18181b;
}
.card {
max-width: 460px;
margin: 0 auto;
padding: 28px;
background: #fff;
border: 1px solid #e4e4e7;
border-radius: 12px;
}
h1 { margin: 0 0 6px; font-size: 20px; }
.sub { margin: 0 0 22px; font-size: 14px; color: #71717a; }
.field { margin-bottom: 16px; }
label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; }
input, textarea, select {
width: 100%;
padding: 10px 12px;
font: inherit;
font-size: 14px;
color: #18181b;
background: #fff;
border: 1px solid #d4d4d8;
border-radius: 8px;
}
input:focus, textarea:focus, select:focus {
outline: 2px solid #18181b;
outline-offset: 1px;
border-color: transparent;
}
textarea { min-height: 110px; resize: vertical; }
button {
width: 100%;
padding: 11px 16px;
font: inherit;
font-size: 14px;
font-weight: 500;
color: #fff;
background: #18181b;
border: 0;
border-radius: 8px;
cursor: pointer;
}
button:hover { background: #3f3f46; }
button:active { transform: scale(0.99); }
button[disabled] { opacity: 0.6; cursor: default; }
/* Hidden from people, filled in by bots. Never remove it. */
.hp { display: none; }
</style>
</head>
<body>
<form class="card" action="https://app.portform.co/api/submit" method="POST">
<h1>Register</h1>
<p class="sub">Save your spot. We’ll email you the details.</p>
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="checkbox" name="botcheck" class="hp" tabindex="-1" autocomplete="off" />
<div class="field">
<label for="name">Name</label>
<input id="name" type="text" name="name" autocomplete="name" required />
</div>
<div class="field">
<label for="email">Email</label>
<input id="email" type="email" name="email" autocomplete="email" required />
</div>
<div class="field">
<label for="guests">Number of guests</label>
<input id="guests" type="number" name="guests" min="1" max="10" value="1" />
</div>
<button type="submit">Reserve my place</button>
</form>
</body>
</html>Replace YOUR_ACCESS_KEY with the access key from your dashboard. Create one free. The endpoint and the honeypot are already wired in.
The features this use case leans on.
Collect what you need
Name, email, guest count, dietary notes, session choice: any field, stored and forwarded.
Confirmation email
ProThe autoresponder emails each attendee their confirmation and the event details automatically.
Guest list export
ProExport every RSVP to CSV for your door list, or sync to a sheet the team shares.
Spam-free list
Honeypot and CAPTCHA keep bot registrations out of your headcount.
Integrations that fit this use case.
Integrations are a Pro feature. On any plan, every submission still reaches your inbox and dashboard. See plans.
Why it fits event registration.
- A signup form, not a ticketing checkout.
- Attendees get an instant confirmation email.
- One CSV for the door on the day.
Templates for event registration.
Copy one, swap the access key, and it posts here from any page, including a static site. New to this? See what a form backend and a form endpoint are.
Other use cases
- Waitlist formsCollect early signups before you have a product.
- Contact formsThe classic name / email / message, delivered to your inbox.
- Newsletter signupCapture subscribers straight into your inbox or a sheet.
- Lead captureRoute new leads to your inbox, Slack, or CRM.
- Feedback formsLet customers tell you what to fix, straight to your inbox.
- Survey formsMulti-question responses collected as one submission.
- Job application formsCollect applications and résumés in one submission.
- Customer supportA support form that reaches your team fast.
- Demo requestsQualify and route demo requests to sales.