A form backend that shows you who submitted
Point any HTML form at one endpoint. Submissions are spam filtered, stored in an inbox, and emailed to you — with no backend code, no database, and no server to keep running. Every submission also links to the session replay of the visitor who sent it, so you can watch what they did before they hit Send.
One endpoint, no backend
Change your form's action attribute and you are done. Plain HTML works with no JavaScript at all; React and fetch clients get JSON instead of a redirect by asking for it. Static sites, Jamstack, and server-rendered apps are all the same to it.
Spam filtered before it reaches you
A honeypot field, submit timing, content heuristics, bot fingerprinting, and IP reputation are weighed into one score. Spam is stored so you can audit the filter, never emailed, and never counted against your quota — you don't pay to store junk.
Linked to the session replay
This is the part a standalone form backend cannot do. Nevision already recorded the visitor's session, so a submission opens the replay of that exact visit. See the pricing page they read, the field they retyped four times, and the error they hit on the way.
A contact form is the one piece of a static site that refuses to stay static. Everything else is files on a CDN, and then one form needs a server that accepts a POST, filters spam, and sends mail — so you either stand up a backend for a single endpoint or you hand it to a form backend. Formspree, Getform, and Basin all do that job well.
The thing none of them can do is tell you anything about the person who submitted. They receive a POST containing form fields. That is genuinely all the information they have.
Why the replay link changes the job
Nevision is already recording sessions on the site the form lives on, so the submission and the recording are two views of the same visit. Our recorder attaches the session id to the form as a hidden field, and the inbox turns it into a link. A message reading "your pricing is confusing" stops being a vague complaint and becomes ninety seconds of footage of someone scrolling the pricing table three times.
It also settles arguments that email alone cannot. A lead that looks like spam but replays as a real person reading four pages is a real lead. A support request that says "the button does nothing" is either reproduced or not, in the replay, with the JavaScript error captured beside it.
How spam is scored
Signals are weighted rather than absolute, because a single hard rule either lets bots through or eats real submissions. A filled honeypot is the one exception and is decisive on its own — no human fills a field they cannot see. Everything else contributes: how fast the form was submitted after it rendered, links and keyword patterns in the content, whether the request carries a bot fingerprint, the sender's IP reputation, and whether an identical payload arrived moments ago.
Anything scored as spam is still stored, so you can check the filter rather than trust it, and it never counts toward your monthly quota. It is simply never emailed. Suspicious submissions are delivered and flagged rather than withheld, on the principle that a missed lead costs more than a junk email.
Only confirmed addresses receive mail
Every recipient you add gets a confirmation link first, unless they are already a member of your Nevision account. This is not friction for its own sake: an endpoint that emails arbitrary unconfirmed addresses on an anonymous POST is a spam relay wearing a form backend's clothes. Submissions are stored either way, so nothing is ever lost while an address is pending.
Who is allowed to submit
A form only accepts submissions from the domains configured on its site. That allowlist is what stops someone copying your endpoint onto their own page and using it to send you mail. It also means server-side calls need to send an Origin header explicitly, which the dashboard's cURL example spells out.
Plan limits
Free: 3 forms, 100 submissions/month, 60-day retention. Lite ($12/mo): 10 forms, 1,000 submissions, file uploads, 365-day retention. Pro ($39/mo): 50 forms, 10,000 submissions. Business ($99/mo): unlimited forms, 50,000 submissions, unlimited retention. Spam never counts against these numbers.
How it works
Create a form, get an endpoint
Add a form to one of your sites and copy the endpoint. Paste it into your form's action attribute. The dashboard gives you ready-made HTML, React, JavaScript, and cURL snippets built from your real endpoint.
Confirm where submissions go
Add the addresses that should receive submissions. Each one gets a confirmation link, because a form backend that emails unconfirmed addresses is a spam relay. Send a test submission from the dashboard to check the whole path before you publish.
Read them wherever suits you
Notifications arrive by email with Reply-To set to the submitter, so hitting reply just works. The dashboard inbox keeps the full history with read, archive, and delete — and a link straight to the session replay.
How Nevision compares
| Feature | Nevision | Formspree | Getform | Netlify Forms |
|---|---|---|---|---|
| Works with plain HTML, no JavaScript | ||||
| Spam filtering included | ||||
| File uploads | ||||
| Hosted thank-you page | ||||
| Works on any host | — | |||
| Session replay of the submitter | — | — | — | |
| Error tracking on the same site | — | — | — | |
| Uptime monitoring on the same site | — | — | — | |
| Send a test submission from the dashboard | — | — | — |
Comparison based on publicly listed pricing and features as of August 2026.
Frequently asked questions
Do I need to write any JavaScript?+
No. A plain HTML form with an action attribute works end to end — the browser posts it and lands on a thank-you page. JavaScript is only needed if you want to stay on the page and handle the response yourself, which you do by sending an Accept: application/json header. The dashboard gives you both versions.
How does a submission get linked to a session replay?+
The Nevision recorder finds forms whose action points at your Nevision endpoint and adds a hidden field carrying the current session id. The submission is stored with that id and the inbox renders it as a link. If you submit via fetch, keep the action attribute on the form element — that is what the recorder looks for.
Can I keep my own thank-you page?+
Yes. Set a redirect URL on the form, or pass a _next field with the destination. A _next value must point at one of your site's own domains; anything else falls back to the hosted thank-you page, so your endpoint cannot be turned into an open redirect.
What happens when I hit my monthly limit?+
Submissions over the cap are refused with a clear message rather than silently dropped, and the dashboard shows usage against the limit before you get there. Spam does not count toward it.
Can I accept file uploads?+
Yes, on paid plans. Up to 5 files and 4 MB per submission, sent as ordinary multipart/form-data. Attachments are stored and downloadable from the inbox.
Where do replies go?+
Reply-To is set to the submitter's email address when the form contains one, so replying in your mail client reaches the person who wrote in. You can override it per submission with a _replyto field.
Is it GDPR friendly?+
Submissions are stored in the EU (eu-central-1), the sender's IP is anonymized before it is written, and every plan has a retention window after which submissions are deleted automatically. You can shorten that window per form, and delete any submission immediately from the inbox.