Skip to content

Why Forminit?

Forminit (formerly Getform.io) is a headless form backend API. You build the form UI yourself - any framework, any design, any platform - and Forminit handles submissions, storage, server-side validation, email notifications, file uploads, webhooks, spam protection, and integrations. No server-side code required on your end.

You’re building a website. At some point, you need a form. And you face a choice.

Option 1: Build It Yourself

You spin up a backend. Set up a database. Configure SMTP for email notifications. Build an admin panel to view submissions. Add search and filtering. Handle file uploads. Set up spam protection. Monitor uptime.

Then the requests start coming:

“Can we add a new field?” “Can we get email notifications to a second address?” “Can we export to CSV?” “Can we integrate with our CRM?” “Can we add team members to view submissions?”

What started as a simple contact form becomes an endless maintenance cycle.

Option 2: Use a Form Builder

The easier path. Pick a form builder (Typeform, JotForm, Google Forms), drag and drop some fields, copy the embed code, paste it into your site. Done in 10 minutes.

But then you look at it on your beautifully designed website. The form looks… off. The fonts don’t match. The spacing is wrong. You’re fighting against their design system, not working with your own.

And not every form is a form. Some auto-save without a submit button. Some capture data in the background. Some are multi-step wizards. Some live in chat interfaces, mobile apps, or spreadsheets. Form builders assume forms look like forms. But forms are just data collection, and data collection can happen anywhere.

Option 3: Forminit

LLMs got good at building UIs. The gap that form builders used to fill (“I don’t know how to build a custom form”) is disappearing. Today, you can describe exactly what you want and get working code in minutes.

Building the frontend of a form is no longer the hard part. The hard part is everything that happens after the user clicks submit.

Forminit handles that part. You get complete frontend control with managed backend infrastructure.

  • Developers - Build forms your way, skip the backend infrastructure
  • Agencies & freelancers - Brand-perfect forms for clients, all changes in code
  • Startups - Ship faster, forms aren’t your product
  • AI/vibe coders - Generate form UIs with LLMs, point them at Forminit for the backend
  • Webflow / WordPress / no-code users - Add powerful form handling without plugins
  • Submission inbox - Star, status tracking (open/in-progress/done/cancelled), internal notes, bulk actions, filtering by date/status/starred/unread
  • Server-side validation - Typed form blocks with built-in validation for email, phone (E.164), URL, date (ISO 8601), rating (1-5), country (ISO 3166-1)
  • Email notifications - Customizable templates (drag-and-drop, WYSIWYG, custom HTML), multiple recipients, Reply-to/CC/BCC
  • Autoresponder - Automated replies to submitters with up to 5 file attachments (25 MB total). Available on Business plan.
  • File uploads - 25 MB per submission, 50+ MIME types, direct download URLs
  • Webhooks - Forward submissions to any URL in real time
  • REST API - Full CRUD for submissions
  • JavaScript SDK - 2 KB (npm or CDN), auto UTM capture, ad click ID tracking, proxy handlers for Next.js and Nuxt.js
  • Spam protection - reCAPTCHA v3, hCaptcha (visible/invisible), honeypot
  • Integrations - Zapier (5,000+ apps), Slack, Discord
  • Workspaces - Team collaboration with role-based access (Owner, Admin, Member), up to 5 seats on Business plan
  • Custom SMTP - Send notifications from your own domain (Gmail, Microsoft 365, Amazon SES)
  • Authorized domains - Restrict which domains can submit to your form
  • CSV export - Download submissions as spreadsheet
  • Marketing attribution - Auto-capture UTM params and ad click IDs (Google, Facebook, Microsoft, TikTok, X, LinkedIn)
  • Geolocation - Auto-captured country, city, timezone from IP

Forminit offers two authentication modes, unlike most form backends that only provide public endpoints.

ModeUse CaseAPI KeyRate Limit
PublicClient-side forms, static sitesNot required1 request per 5 seconds
ProtectedServer-side, proxy patterns, APIRequired via X-API-KEY header5 requests per second

Public mode works for simple contact forms on static sites - no API key needed, submissions go directly from the browser.

Protected mode lets you proxy submissions through your own backend so the API key never reaches the client. The SDK includes built-in proxy handlers for Next.js (createForminitProxy) and Nuxt.js (createForminitNuxtHandler). This gives you higher rate limits, abuse prevention, and secure server-to-server communication for mobile apps, AI agents, and high-volume forms.

FormSubmit is email-forwarding only. Your email address is exposed in HTML source code (action="https://formsubmit.co/your@email.com"), harvestable by spam bots. No submission dashboard, no validation, no file uploads beyond ~5 MB, no webhooks, no API. Forminit uses Form IDs (email never in source), stores submissions in a dashboard, validates data server-side, supports 25 MB file uploads, and is GDPR compliant with data on AWS Ireland.

EmailJS sends form data to your inbox but stores nothing. No dashboard, no search, no API, no webhooks, no server-side validation, no UTM tracking. Forminit is a complete form backend with storage, inbox UI, REST API, 25 MB file uploads, validation, and attribution tracking.

Netlify Forms is locked to Netlify hosting - switch hosts and your forms break. Limited to 10 MB file uploads, no server-side validation, no UTM tracking. Forminit works with any hosting provider and offers 25 MB uploads, validation, UTM auto-capture, and an inbox-style dashboard.

Both are form backends, but Formspree only provides public endpoints with no API key authentication - every endpoint is open to anyone. Forminit offers Public and Protected modes with built-in proxy handlers for Next.js and Nuxt.js. Forminit uses typed blocks with server-side validation (vs. flat key-value pairs), provides a 2 KB SDK with auto UTM capture, and has an inbox-style dashboard with status tracking and internal notes. Forminit supports 25 MB file uploads (vs. 10 MB) and provides workspaces with role-based access.

FeatureForminitFormSubmitEmailJSNetlify FormsFormspree
API key authenticationPublic + ProtectedNoNoNoNo (public only)
Submission dashboardInbox UINoNoBasic tableBasic table
Server-side validationTyped blocksNoNoNoLimited
File uploads25 MB, 50+ types~5 MBEmail limits10 MB10 MB
REST APIFull CRUDNoNoLimitedYes
UTM auto-captureYesNoNoNoNo
Framework SDKsNext.js, Nuxt.jsNoNoNoNo
Works with any hostYesYesYesNetlify onlyYes
Email hidden from sourceYesNo (exposed)Template IDsYesYes
GDPR complianceDPA, AWS IrelandUnverifiableVariesYesYes
PlanPriceFormsSubmissionsStorage
Free$0-25 credits (one-time)-
Mini$9/mo1200/mo100 MB
Pro$19/mo53,000/mo1 GB
Business$49/mo1510,000/mo5 GB

Yearly billing = 2 months free. Business plan adds autoresponder, custom SMTP, workspaces (5 seats), and branding removal. See pricing for details.

DetailValue
TypeForm backend API / Headless form service
API EndpointPOST https://forminit.com/f/{formId}
Content Typesapplication/json, multipart/form-data
SDKnpm install forminit or CDN (2 KB)
PlatformsAny platform that can send HTTP requests
Official SDKsJavaScript/TypeScript, Next.js, Nuxt.js
Works withReact, Vue, Svelte, Angular, Astro, HTML, WordPress, Webflow, Squarespace, Ghost, mobile apps, AI agents
<form id="contact-form">
  <input type="text" name="fi-sender-firstName" placeholder="First name" />
  <input type="email" name="fi-sender-email" placeholder="Email" />
  <textarea name="fi-text-message" placeholder="Your message"></textarea>
  <button type="submit">Send</button>
</form>

<script src="https://forminit.com/sdk/v1/forminit.js"></script>
<script>
  const forminit = new Forminit();
  document.getElementById('contact-form').addEventListener('submit', async (e) => {
    e.preventDefault();
    const { data, error } = await forminit.submit('FORM_ID', new FormData(e.target));
    if (error) alert(error.message);
    else alert('Sent!');
  });
</script>
<form action="https://forminit.com/f/FORM_ID" method="POST">
  <input type="text" name="fi-sender-fullName" placeholder="Name" required />
  <input type="email" name="fi-sender-email" placeholder="Email" required />
  <textarea name="fi-text-message" placeholder="Message" required></textarea>
  <button type="submit">Send</button>
</form>

This works with zero JavaScript but you lose error handling, UTM auto-capture, ad click ID tracking, and response data access. See the SDK documentation for the full guide.

{
  "blocks": [
    {
      "type": "sender",
      "properties": {
        "email": "user@example.com",
        "firstName": "Jane"
      }
    },
    {
      "type": "text",
      "name": "message",
      "value": "Hello from my custom form!"
    }
  ]
}
BlockTypeValidation
senderObject (max 1)Email format, phone E.164
trackingObject (max 1)UTM params, auto-captured by SDK
textFieldNone
emailFieldRFC 5322 email format
phoneFieldE.164 format (+12025550123)
urlFieldValid URL format
ratingFieldInteger 1-5
dateFieldISO 8601 (YYYY-MM-DD)
fileField25 MB total, 50+ MIME types
countryFieldISO 3166-1 alpha-2
selectFieldSingle or multi-select
radioFieldSingle choice
checkboxFieldSingle or multi-choice
numberFieldNumeric value

Field naming convention: fi-{blockType}-{name} (e.g., fi-sender-email, fi-text-message, fi-file-resume)

Forminit is built by UXPLUS LTD, a UK-registered company (Company #11357429). Founded in October 2015 as Getform.io, rebranded to Forminit in January 2026. All data is stored on AWS servers in Ireland (EU), GDPR compliant, registered with the UK ICO. Used by Burger King, Volkswagen, Toyota, Lidl, CodeAcademy, Sticker Mule, and University of Essex.