FreelyForm
Hosted form backend

The form backend for HTML forms, static sites, and custom apps.

Point any HTML form at a FreelyForm endpoint. We validate and store every submission, deliver it to your inbox, and keep a per-channel delivery record — without server code or a proprietary form builder.

Native HTML and JSON · File uploads · Signed webhooks · Spam controls

Your page
NameAda Lovelace
Emailada@example.com
MessageQuote for 500 scarves, please.
Send
Delivered200
  • Submission stored14:02:11
  • Email to ada@example.com14:02:13
  • Signed webhook14:02:14
  • Autoresponse queued14:02:14
freelyform.com

What is a form backend?

A form backend is the server-side half of a web form. It receives the POST request, validates and stores the fields, notifies the people who need to see it, and returns a response to the browser.

FreelyForm provides that backend as a hosted endpoint. Static sites and front-end apps can accept submissions without running a server, writing a mailer, or maintaining a database.

Why use one

Everything after submit, handled.

Most forms fail after the visitor clicks send: mail lands in spam, a field is missing, an attachment is lost, or nobody notices that delivery stopped. FreelyForm makes the post-submit path visible and repeatable.

Validation and rules

Require fields, block values, mark spam, or route submissions based on the content. Rules run before a submission is accepted or counted.

Delivery you can inspect

Owner notifications and autoresponses each have a status, error message, and retry action. No guessing whether the mail left the building.

Verified recipients

Recipients confirm their address once. Until then submissions are stored safely as pending and delivered automatically after confirmation.

File uploads

Accept images, PDFs, and documents with a MIME and extension allowlist, per-form limits, and a configurable retention period.

Webhooks and alerts

Send signed payloads to your own endpoint, Discord, or Telegram. Failed deliveries are retried and kept in a replayable log.

Submission API

Query submissions, export CSV, inspect delivery attempts, and retry failed channels with account-scoped API keys.

How it works

Three steps from form to inbox.

No SDK is required. The endpoint accepts standard form posts, so the integration is mostly a copy-and-paste change.

  1. Create a form and copy the endpoint

    Give the form a name, add up to five recipients, and choose whether to show a message, redirect, or return JSON after submit.

  2. Verify the inbox that should receive mail

    Each recipient confirms once by email. Submissions received before confirmation are retained and queued for delivery afterwards.

  3. Point your existing form at the endpoint

    Set the action attribute, keep your field names, and submit. Add /embed.js if you want inline success and error states without a redirect.

Request path from an HTML form to delivery HTML form action=…/f/FORM_ID Guarded ingest rate limit · honeypot Rules require · block · route Stored Postgres + queue Delivered email · webhook
Every submission is stored first, then delivered per channel. Nothing is lost when an inbox bounces.
Your existing form, one changed attribute
<form action="https://freelyform.com/f/FORM_ID" method="POST">
  <input type="text" name="name" required>
  <input type="email" name="email" required>
  <textarea name="message"></textarea>
  <button type="submit">Send</button>
</form>

Already using JavaScript? POST JSON with an Accept: application/json header and read the structured response. See the quickstart or browse the API reference.

Side by side

FreelyForm and Formspree, feature by feature.

Formspree is the established benchmark. This table is a practical comparison, not a claim that one product is right for every team.

Publicly listed capabilities checked November 2026. Verify current competitor plans before purchasing.
CapabilityFormspreeFreelyForm
HTML and JSON form endpointYesYes
Email notificationsYesYes
Autoresponse to the submitterProfessional and aboveEvery account
File uploadsYes, 5 files × 25 MBYes, 5 files × 25 MB by default
Custom notification templatesBusinessYes
Rules and conditional handlingYesRequire, block, spam, route
Partial submissions and resume linksNot in the public feature listYes
Signed webhooks and replayWebhooks availableHMAC signature, retries, delivery log, replay
Custom sending domain or SMTPYesBYO SMTP with TXT verification
Submission and management APIAvailableIncluded
Entry priceFrom $15/month, monthly billingFree during early access

See the full Formspree comparison for migration notes and where each product is a better fit.

Use cases

One endpoint, several kinds of forms.

The same ingest path handles contact forms, quote requests, application forms, support intake, and file submissions.

Reliability and abuse

Delivery is a state, not a hope.

Each submission keeps its own delivery history. When a channel fails, the reason is visible and the retry is explicit.

Delivery states and retry path Queued pg-boss job Sending SMTP · Resend Delivered recorded per channel Retrying up to 5 attempts Failed visible in the log replay from the log
Failures are a state you can inspect and replay, not a silent drop.
  • Per-channel records. Email, autoresponse, and webhook attempts are tracked separately.
  • Automatic retries. Transient failures are retried with backoff; permanent failures stay visible for review.
  • Suppression list. Hard bounces, complaints, and unsubscribes stop future sends to the affected address.
  • Origin allowlist. Restrict a form to the domains you expect instead of accepting posts from anywhere.
  • Rate limits and captcha. Per-form limits, a custom honeypot field, and optional Turnstile slow down abuse.
  • Rules before storage. Required-field and block rules reject bad input with a clear 422 response.
  • Encrypted SMTP credentials. Bring-your-own SMTP passwords are encrypted with AES-256-GCM.
  • Retention controls. Set how long submissions are kept and let attachments expire on a schedule.

Early access note: FreelyForm does not publish an uptime SLA yet. The delivery log and retry controls are the operational record.

For developers

A form API that stays out of your markup.

Send JSON, inspect the response, and manage the same data from the API that powers the dashboard.

Submit JSON
curl -X POST https://freelyform.com/f/FORM_ID \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"name":"Ada","email":"ada@example.com","message":"Hello"}'
Verify a webhook signature
const expected = createHmac('sha256', secret)
  .update(timestamp + '.' + rawBody)
  .digest('hex');

// header: x-freelyform-signature
// value:  t=<timestamp>,v1=<expected>

Form backend questions, answered

Do I need a server to use FreelyForm?

No. FreelyForm hosts the endpoint that receives your form. Any HTML form can POST directly to it, and static hosts such as GitHub Pages, Cloudflare Pages, Netlify, and Vercel can use it without server-side code.

Can I keep my existing HTML form?

Yes. Change the form action to your FreelyForm endpoint and keep the field names you already use. Native HTML posts, JSON requests, and multipart file uploads are supported.

Where do submissions go?

Every submission is stored in your FreelyForm account and queued for delivery to the recipients you configure. Each delivery channel has its own status, error detail, and retry action.

Can I receive file uploads?

Yes. Forms can accept multiple files with a MIME and extension allowlist, per-form count and size limits, and an attachment retention period. Files are downloadable from the submission view.

How much does FreelyForm cost?

FreelyForm is free during early access while billing is being built. Accounts currently have no monthly submission cap; per-form rate limits and fair-use safeguards apply.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID