Normadata vs. validator.js: API que mantemos vs. biblioteca que você mantém
validator.js é uma biblioteca excelente. Normadata é a API que cobre o que validator.js não cobre: tax IDs LATAM, normalização LATAM, schema versionado.
validator.js é a biblioteca NPM open-source mais usada para validar strings — e-mails, URLs, UUIDs, IBAN básico e muito mais. É padrão de fato para o stack JavaScript. O Normadata é uma API que cobre validações específicas da LATAM que validator.js não resolve nativamente: CUIT, CPF, CNPJ, RFC com homoclave, RUT chileno com K, NIT colombiano, RUC peruano. A comparação correta não é 'qual é melhor' mas 'o que cada um cobre e como se combinam'.
Comparação rápida
| Aspecto | validator.js | Normadata |
|---|---|---|
| Etapa do pipeline | Validação de strings client-side / server-side | Validação de identificadores LATAM como serviço |
| O que faz principalmente | E-mail, URL, UUID, IP, IBAN básico, BIC, regex helpers — muito | Tax IDs LATAM com algoritmos por país, nomes, endereço LATAM |
| Modelo de pricing | Open-source MIT — grátis, você mantém | Acesso antecipado — sem pricing público |
| SDKs | Biblioteca NPM — JavaScript / TypeScript | REST + JSON, sem SDK — multi-linguagem |
| Estilo da API | Funções puras: isEmail(s), isUUID(s)… | REST batch: POST /v1/validate/tax-ids devolve {results} em JSON estruturado |
| Cobertura LATAM tax IDs | Mínima — alguns países soltos sem atualização garantida | Cobertura multi-país LATAM, tax IDs com algoritmos corretos |
| Persistência de dados | N/A — roda no seu processo | Não persiste PII no pipeline de validação |
| Certificações tipo SOC 2 / ISO | N/A — biblioteca local | No roadmap |
| Profundidade de KYC | Nenhuma | Nenhuma — Normadata não é KYC |
| Orientação de desenvolvimento | Biblioteca embutida — você corrige os bugs | Serviço gerenciado: nós mantemos as regras |
| Buyer típico | Qualquer projeto JS — npm install e pronto | Time que precisa de regras LATAM corretas sem mantê-las |
Quando usar cada um?
- Você está no stack JavaScript e precisa de validações genéricas: e-mail, URL, UUID, IP.
- Você quer zero dependências externas e zero chamadas de rede.
- Seu produto não tem foco LATAM e você não precisa de CPF/CUIT/RFC com algoritmos por país.
- Você está disposto a manter os patches e atualizações quando as regras mudarem.
- Você precisa validar tax IDs LATAM com os algoritmos corretos: Mod-11 duplo do CPF, K do RUT chileno, homoclave do RFC.
- Você quer um serviço gerenciado onde o vendor mantém as regras quando mudam (novos prefixos de mobile, mudanças em formato de tax ID).
- Você precisa de multi-linguagem (TypeScript, Python, Go, Java, Ruby) e não quer portar a biblioteca para cada uma.
- Você quer normalização de nomes LATAM (sobrenome paterno/materno) e endereço LATAM (estado para ISO 3166-2).
O problema de embutir regras LATAM em uma biblioteca
As regras de tax IDs LATAM mudam: Argentina atualiza prefixos de CUIT, Brasil libera novos ranges de CNPJ, México ajusta a geração da homoclave do RFC. Uma biblioteca embutida no seu app precisa de release, PR review, deploy e propagação a todos os serviços que consomem ela. Uma API gerenciada absorve a mudança num único deploy do vendor sem mexer no seu código. Se seu produto depende de tax IDs LATAM corretos, a diferença operacional é real.
validator.js é genuinamente excelente no que faz
Para validação de e-mail, URL, UUID, IP, BIC, IBAN básico — validator.js é difícil de bater. É mantido, tem testes, está embutido em milhares de stacks. Se tudo que você precisa é validar e-mail genérico num projeto JS, validator.js é a resposta certa. O Normadata não compete aí: resolve tax IDs, pessoas, contas financeiras e endereços da LATAM com um único endpoint para limpar o formulário inteiro.
Schema versionado: uma API tem contrato, uma biblioteca tem semver
Quando uma biblioteca tem breaking changes, você atualiza package.json, lê o changelog, refatora. Quando uma API tem breaking changes, mantém /v1 estável e publica /v2 — você migra quando quer. O compromisso do Normadata é manter /v1 backward compatible por um horizonte longo. É difícil garantir isso com uma biblioteca que recebe contribuições da comunidade.
validator.js é grátis e vive no seu processo (zero latência, zero custo, zero dependência externa). O Normadata cobra (pricing pós-beta não definido), adiciona uma chamada de rede (latência e disponibilidade dependem do vendor) e ainda está em acesso antecipado sem SLA contratual. Se seu volume é baixo e sua necessidade LATAM é mínima, validator.js ganha em simplicidade.
Perguntas frequentes
O Normadata pode substituir validator.js completamente?
Para tax IDs e identidades LATAM sim. Para UUID, BIC, e-mail genérico ou regex helpers não — validator.js cobre coisas que o Normadata não implementa porque já estão bem resolvidas em open source.
Quando faz sentido usar ambos?
Quando seu stack é JS, você usa validator.js para validações genéricas (UUID, URL, regex), e Normadata para identificadores LATAM (CUIT, CPF, RFC). É um padrão comum e saudável.
Qual é mais barato?
validator.js é grátis. O Normadata ainda não tem pricing público. A pergunta certa é o custo total: biblioteca + tempo de manutenção + bugs LATAM mal resolvidos vs. API com regras corretas mantidas pelo vendor.
Onde o validator.js ganha do Normadata?
Custo zero, zero latência, zero dependência externa, comunidade madura, ecossistema massivo. Se sua necessidade é JS-only e não LATAM, validator.js é a escolha óbvia.