Zero lock-in when you move hosts
Netlify Forms depends on Netlify's build-time form detection, so migrating means rebuilding your form handling. A mailcontact form is a plain URL: move to Vercel or Cloudflare Pages and change nothing.
integrations · hosting platform
Netlify Forms is the obvious first option on Netlify: add data-netlify="true" to your form and submissions appear in the Netlify dashboard, free for around 100 submissions a month at the time of writing, paid after that. People look for alternatives for three reasons: the form is tied to the host and stops working the day you migrate, notifications live in a dashboard you don't check, and each site's messages are siloed in that site's project.
mailcontact is the host-independent version. Your form posts to a plain HTTPS endpoint (no build-time detection, no data-netlify attribute, no hidden form-name field), so the exact same markup works on Netlify today and on Vercel, Cloudflare Pages, or a VPS tomorrow. Each project also gets a real inbound email address like yourproject@mailcontact.app that works immediately, with no DNS setup, and every message pings Discord, Slack, email, or a webhook.
It's deliberately lightweight: one inbox per project with notifications, not a helpdesk. No tickets, no SLAs, and nothing to reconfigure when your hosting changes.
the snippet
Point the form at your project's mailcontact endpoint. Submissions land in your project inbox. No server, no API route, no email service to wire up.
<!-- No data-netlify attribute, no hidden form-name field -->
<form action="https://mailcontact.app/api/forms/your-form-id" method="POST">
<input type="text" name="name" placeholder="Your name" />
<input type="email" name="email" placeholder="you@email.com" required />
<textarea name="message" placeholder="How can we help?" required></textarea>
<button type="submit">Send</button>
</form>how it works
One inbox per project. Name it after your site and you get a form endpoint and a project email address immediately.
Swap data-netlify="true" for the action URL above and deploy like any other change. No build plugin, no form detection step, no dashboard toggle.
Add a Discord, Slack, email, or webhook channel. Every submission pings you where you already are, instead of waiting in a dashboard.
why mailcontact
Netlify Forms depends on Netlify's build-time form detection, so migrating means rebuilding your form handling. A mailcontact form is a plain URL: move to Vercel or Cloudflare Pages and change nothing.
Netlify Forms only catches form posts. mailcontact also gives each project an inbound address like yoursite@mailcontact.app. Form submissions and emails land in the same inbox.
Some projects on Netlify, others on Vercel or GitHub Pages? Each gets its own inbox in one place, instead of per-site submission lists scattered across hosting dashboards.
faq
Netlify Forms has a free tier of around 100 submissions per month at the time of writing, then moves to a paid add-on. If your site lives on Netlify long-term and volume is low, it's a reasonable choice. The trade-off is that your form handling is tied to your host.
With Netlify Forms, submissions stop the moment your site is served elsewhere, because the handling depends on Netlify's build pipeline. A mailcontact form posts to an external endpoint, so redeploying the same markup on any host keeps working unchanged.
No. mailcontact identifies your form by its endpoint URL. Only email and message are required fields (name and subject are optional), and CORS is open, so the form also works from branch deploys and deploy previews without extra setup.
Submit the same fields with a few lines of fetch in a submit handler to keep visitors on the page and show an inline success state. A configurable redirect for native form posts is coming with the launch.
related
Forms and a real email address, together, with notifications where you live. Launching soon. Be the first to know.