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.

VettoMailcheck.js
What it isA hosted signup-form gate, installed with one script tagA small JavaScript library (optional jQuery plugin) that suggests a likely domain after a typo
Pricing and free tierFree: 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 performedSyntax, typos, throwaways, dead domains, relays (tagged), honeypot. Pro: lookalikes with live MX, alias farms, datacenter/VPN/Tor, bursts, freemail, role, deny listDomain typo suggestions only. It does not check that an address exists or accepts mail
Where it runsBrowser script plus Vetto’s edge API, which does the DNS lookupsEntirely 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 addressReturns a suggestion object; you render the message and wire up what a click does
Disposable coverage9,222 CC0 domains plus learned throwaway mail-server infrastructureNone (outside its scope)
Alias detectionPro: Gmail dots, +tags and googlemail.com collapse to one inbox; repeats flaggedNone
SMTP mailbox verificationNo. Public DNS onlyNo
Server-side enforcementPro: signed vetto_token verified offline or with /v1/verify, or /v1/check with your secret keyNothing to enforce: it suggests and never blocks (it can run in Node.js too)
SetupOne script tag; no codenpm install or a script tag, plus a blur handler that renders the suggestion
CustomizationMessages 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, .io and .ai are 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 as jane@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

  1. Remove the Mailcheck script (or the npm import) and the blur handler that renders “Did you mean…?”. Two suggestions under one field confuse people.
  2. Add Vetto before </body>:
index.html
<script src="https://usevetto.com/v.js" data-site="pk_xxxxxxxxxxxxxxxxxxxx" defer></script>
  1. Pick your policies. By default, typos get a suggestion, throwaway and dead domains are blocked, and privacy relays pass with a tag.
  2. If you built custom UI around Mailcheck’s callback, listen for the vetto:verdict event on the input, or call window.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.