Netlify Forms Alternative
Forminit is a form backend that works with any hosting provider and offers file uploads, webhooks, and API access.
How Forminit Differs from Netlify Forms
Section titled “How Forminit Differs from Netlify Forms”Netlify Forms is a form handling feature built into Netlify’s hosting platform. Forminit is a standalone form backend that works with any hosting provider or framework.
| Feature | Netlify Forms | Forminit |
|---|---|---|
| Works with any host | No — Netlify hosting only | Yes — any hosting provider |
| Framework support | Static sites on Netlify | Any framework, any platform |
| File uploads | 10 MB limit | 25 MB per submission |
| Webhooks | Paid plans only | Yes — all plans |
| Server-side validation | No | Yes — email, phone, URL, country, date |
| UTM tracking | No | Yes — auto-captures attribution data |
| Geolocation | No | Yes — country, city, timezone from IP |
| API access | Limited | Full REST API |
| Submission storage | Yes | Yes — with search and export |
| Email notifications | Yes | Yes |
| Spam protection | Akismet, honeypot | reCAPTCHA, hCaptcha, honeypot |
| Free tier submissions | 100/month | Check pricing page |
Benefits of Forminit
Section titled “Benefits of Forminit”1. Works with Any Hosting Provider
Section titled “1. Works with Any Hosting Provider”Forminit is not tied to a specific hosting platform. Use it with:
- AWS
- Cloudflare Pages
- GitHub Pages
- DigitalOcean
- Self-hosted servers
- Any static or dynamic hosting
Your form backend remains the same if you change hosting providers.
2. Works with Any Framework
Section titled “2. Works with Any Framework”Forminit provides SDKs and integrations for:
- HTML / Vanilla JavaScript
- Next.js (with proxy handler)
- Nuxt.js (with proxy handler)
- Node.js
- React, Vue, Svelte, or any frontend framework
No build plugins or platform-specific configuration required.
3. Larger File Uploads
Section titled “3. Larger File Uploads”Forminit accepts file uploads up to 25 MB per submission.
<input type="file" name="fi-file-resume" accept=".pdf,.doc,.docx" />
<input type="file" name="fi-file-portfolio[]" multiple />
4. Server-Side Validation
Section titled “4. Server-Side Validation”Forminit validates data on the server before storing:
| Field Type | Validation |
|---|---|
email | Valid email format |
phone | E.164 international format |
url | Valid URI format |
country | ISO 3166-1 alpha-2 code |
rating | Integer between 1 and 5 |
date | ISO 8601 format |
Invalid submissions return clear error messages with specific field information.
5. Webhooks on All Plans
Section titled “5. Webhooks on All Plans”Forminit can forward submissions to any URL:
- CRM systems (HubSpot, Salesforce)
- Databases (PostgreSQL, MongoDB)
- Communication tools (Slack, Discord)
- Spreadsheets (Google Sheets, Airtable)
- Your own backend services
6. Full REST API
Section titled “6. Full REST API”Retrieve and query submissions programmatically:
curl -X GET 'https://api.forminit.com/v1/forms/YOUR_FORM_ID' \
-H 'X-API-Key: YOUR_API_KEY'
Paginate, search, and filter through all your form data.
7. Marketing Attribution
Section titled “7. Marketing Attribution”Forminit automatically captures:
- UTM parameters (source, medium, campaign, term, content)
- Ad platform click IDs (gclid, fbclid, msclkid, ttclid, twclid)
- Referrer URL
- Geolocation (country, city, timezone)
No additional code required.
8. API Key Security
Section titled “8. API Key Security”Forminit provides proxy handlers for Next.js and Nuxt.js that keep API keys on the server. See Next.js Integration and Nuxt.js Integration for setup guides.
Use Case Comparison
Section titled “Use Case Comparison”| Use Case | Netlify Forms | Forminit |
|---|---|---|
| Static site on Netlify | ✅ | ✅ |
| Site hosted on other platforms | ❌ | ✅ |
| Self-hosted application | ❌ | ✅ |
| File uploads over 10 MB | ❌ | ✅ |
| Webhooks on free tier | ❌ | ✅ |
| Track lead sources | ❌ | ✅ |
| Full API access | Limited | ✅ |
| Server-side validation | ❌ | ✅ |
Quick Start
Section titled “Quick Start”1. Create a Form
Section titled “1. Create a Form”Sign up at forminit.com and create a form to get your Form ID.
2. Implement
Section titled “2. Implement”HTML / JavaScript (works on any host):
<form id="contact-form">
<input type="text" name="fi-sender-firstName" placeholder="First name" required />
<input type="text" name="fi-sender-lastName" placeholder="Last 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>
<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('YOUR_FORM_ID', new FormData(e.target));
if (error) {
console.error(error.message);
return;
}
console.log('Submitted:', data.hashId);
e.target.reset();
});
</script>
Framework Integrations:
Migrating from Netlify Forms
Section titled “Migrating from Netlify Forms”Remove Netlify-Specific Attributes
Section titled “Remove Netlify-Specific Attributes”Netlify Forms:
<form name="contact" method="POST" data-netlify="true">
<input type="hidden" name="form-name" value="contact" />
<input type="text" name="name" />
<input type="email" name="email" />
<textarea name="message"></textarea>
<button type="submit">Send</button>
</form>
Forminit:
<form id="contact-form">
<input type="text" name="fi-sender-fullName" />
<input type="email" name="fi-sender-email" />
<textarea name="fi-text-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('YOUR_FORM_ID', new FormData(e.target));
if (error) {
console.error(error.message);
return;
}
e.target.reset();
});
</script>
Field Name Mapping
Section titled “Field Name Mapping”| Netlify Forms | Forminit |
|---|---|
name="name" | name="fi-sender-fullName" |
name="email" | name="fi-sender-email" |
name="phone" | name="fi-sender-phone" |
name="message" | name="fi-text-message" |
name="company" | name="fi-sender-company" |
What Changes
Section titled “What Changes”| Netlify Forms | Forminit |
|---|---|
data-netlify="true" attribute | SDK script and submit handler |
Hidden form-name field | Form ID in submit call |
| Automatic detection at build | Explicit form creation in dashboard |
| Netlify hosting required | Any hosting provider |
Does Forminit require a specific hosting provider?
Section titled “Does Forminit require a specific hosting provider?”No. Forminit works with any hosting provider including AWS, Cloudflare, GitHub Pages, DigitalOcean, or self-hosted servers.
Can I use Forminit with a static site?
Section titled “Can I use Forminit with a static site?”Yes. Include the SDK via CDN and submit forms with JavaScript. No server-side rendering required.
Does Forminit send email notifications?
Section titled “Does Forminit send email notifications?”Yes. Forminit sends email notifications and stores submissions in a searchable dashboard.
What spam protection options are available?
Section titled “What spam protection options are available?”Forminit integrates with:
Can I migrate existing Netlify Forms submissions?
Section titled “Can I migrate existing Netlify Forms submissions?”Forminit does not import historical data from Netlify Forms. Export your existing submissions from Netlify before migrating.
Related Documentation
Section titled “Related Documentation”- Form Blocks Reference — Available field types
- File Uploads — File upload handling
- HTML Integration — Static site setup
- Next.js Integration — Next.js setup
- Nuxt.js Integration — Nuxt.js setup
- Node.js Integration — Server-side usage
- List Submissions API — Retrieve submissions
- Submit Form API — API reference