Comparison · checked October 2026
Mailcheck.js alternative: typo suggestions plus the checks Mailcheck skips
Mailcheck is a free, MIT-licensed typo suggester that runs offline in the browser. If typo suggestions are all you need, keep it. Vetto is for when the same field should also stop throwaway inboxes, dead domains and alias farms.
By the Vetto team · Updated
Quick answer
Mailcheck.js and Vetto overlap on one job: suggesting gmail.com when someone types gmial.con. Mailcheck does it for free, under the MIT license, with no runtime dependencies and no network requests, so nothing about your visitors leaves the page. If you only need typo suggestions, or you cannot send addresses to a third party, Mailcheck is the better choice.
Vetto does the typo part with a one-click Fix and adds the checks Mailcheck leaves out on purpose: throwaway inboxes, domains that cannot receive mail, and, on Pro, alias farms and lookalike domains. It is a hosted service, so it needs its API to do that.
Side by side
Mailcheck facts come from its GitHub repository and README, read on 10 October 2026. Vetto’s plans are listed in Vetto’s pricing section.
| Vetto | Mailcheck.js | |
|---|---|---|
| What it is | A hosted signup-form gate, installed with one script tag | A small JavaScript library (optional jQuery plugin) that suggests a likely domain after a typo |
| Pricing and free tier | Free: 1 site, 1,000 checks/mo. Pro: $12/mo or $99/yr. Founding Lifetime: $69 once (first 100, until 27 Nov 2026) | Free and open source under the MIT license. No account, no quota |
| Checks performed | Syntax, typos, throwaways, dead domains, relays (tagged), honeypot. Pro: lookalikes with live MX, alias farms, datacenter/VPN/Tor, bursts, freemail, role, deny list | Domain typo suggestions only. It does not check that an address exists or accepts mail |
| Where it runs | Browser script plus Vetto’s edge API, which does the DNS lookups | Entirely in the browser or in Node.js. No runtime dependencies, no network requests |
| Typo suggestions | “Did you mean jane@gmail.com? [Fix]” built in; one click swaps the address | Returns a suggestion object; you render the message and wire up what a click does |
| Disposable coverage | 9,222 CC0 domains plus learned throwaway mail-server infrastructure | None (outside its scope) |
| Alias detection | Pro: Gmail dots, +tags and googlemail.com collapse to one inbox; repeats flagged | None |
| SMTP mailbox verification | No. Public DNS only | No |
| Server-side enforcement | Pro: signed vetto_token verified offline or with /v1/verify, or /v1/check with your secret key | Nothing to enforce: it suggests and never blocks (it can run in Node.js too) |
| Setup | One script tag; no code | npm install or a script tag, plus a blur handler that renders the suggestion |
| Customization | Messages and policies in the dashboard (custom on Pro) | Your own domain, second-level and top-level lists, and a custom distance function |
What Mailcheck does well
- It costs nothing and sends nothing. MIT-licensed, about 7.9K stars on GitHub (October 2026), no runtime dependencies, no network requests.
- It abstains when unsure. Real endings such as
.co,.ioand.aiare not rewritten, and two equally close candidates produce no suggestion at all. - It never touches the field. Mailcheck only suggests; the person decides. Vetto follows the same rule: the fix is one click, never a silent rewrite.
- It is easy to bend. Pass your own domain lists or distance function, and use it as a browser global, a jQuery plugin, CommonJS or ESM, with TypeScript declarations bundled in 2.0.
What it doesn’t do, by design
The README is direct about its scope: Mailcheck is “a typo suggester, not an email validator or a deliverability check.” With no domain list, no DNS lookup and no memory of earlier signups, these pass untouched:
someone@mailinator.com: a throwaway inbox, spelled correctly.- A domain that no longer exists, or exists but has no mail server.
j.a.n.e+trial7@googlemail.com: the same inbox asjane@gmail.com, on its seventh free trial.- A bot that fills in every field, hidden ones included.
That is a scope decision, not a flaw. The question is whether your form needs more than typo help. Paste an address into the free disposable email checker to see what the extra checks catch, or compare suggestions side by side in the email typo checker.
Migrating: remove Mailcheck, add one script tag
- Remove the Mailcheck script (or the npm import) and the blur handler that renders “Did you mean…?”. Two suggestions under one field confuse people.
- Add Vetto before
</body>:
<script src="https://usevetto.com/v.js" data-site="pk_xxxxxxxxxxxxxxxxxxxx" defer></script>- Pick your policies. By default, typos get a suggestion, throwaway and dead domains are blocked, and privacy relays pass with a tag.
- If you built custom UI around Mailcheck’s callback, listen for the
vetto:verdictevent on the input, or callwindow.Vetto.check(email).
When Mailcheck.js is the better choice
- Typo suggestions are all you need. A free library beats any subscription for that job.
- Addresses must not leave the page. Privacy rules, an intranet or an offline kiosk: Mailcheck makes no network requests; Vetto has to call its API.
- You need custom correction targets, such as your company’s domains or regional providers.
- Your volume is high and you only want typo help. Mailcheck has no quota; Vetto Pro allows 20,000 checks per site per month.
If you keep Mailcheck, note that the 2.0 behavior described above is on GitHub, while the npm package still listed 1.1.1 as its latest release on 10 October 2026. To stop throwaways without a hosted service, pair it with a domain list: see how to block disposable emails on your signup form. Weighing a bigger hosted list instead? Read the IsItDisposable comparison.
Frequently asked questions
Is Mailcheck.js still maintained?
As of 10 October 2026 its GitHub repository is not archived, the README describes Mailcheck 2.0 and names two maintainers, and the most recent push was on 15 September 2026. The npm registry still lists 1.1.1 as the latest release, so check which build you install.
Does Mailcheck block disposable emails?
No. It only suggests corrections for misspelled domains. It has no throwaway-domain list and makes no network requests, so a correctly spelled mailinator.com address passes untouched. You need a list or a hosted check for that.
Can I run Mailcheck and Vetto on the same field?
You can, but visitors would see two “Did you mean” messages. Vetto’s typo check is always on (as a suggestion, a warning or a block), so remove Mailcheck from fields Vetto guards and keep it only where Vetto is not installed.
Does Vetto work offline?
No. Vetto’s disposable, dead-domain and alias checks need its API and live DNS. If the API does not answer within 800 ms, the form submits as if Vetto were not installed. If you need a check that never leaves the page, Mailcheck is the right tool.
Does Vetto store the email addresses it checks?
No plain addresses. Vetto keeps salted hashes for 90 days for repeat and alias detection, and the verdict log shows masked addresses such as ja•••@gmail.com. Mailcheck stores nothing because nothing leaves the browser.
Give your signup form sharp eyes.
Free on one site. One line of HTML. Remove it any time and your form works exactly as before.
Founding offer: Pro for life for $69 once, first 100 buyers, until Nov 27.