By George Curta · Last updated 2026-04-07
419/419 Testes Passando
100% de Taxa de AprovaçãoSuite de testes de produção abrangente cobrindo interações de GUI, endpoints de API, segurança, desempenho e compatibilidade entre navegadores — tudo.
Atualização de infraestrutura
Até 467× mais rápidoEm março de 2026, migramos de um VPS compartilhado para um servidor dedicado com 16× mais RAM, 5 workers analisadores paralelos e todos os 48 modelos.
Desempenho simultâneo
O novo servidor lida com centenas de solicitações simultâneas em todos os serviços sem falhas.
| Serviço | Simultâneo | Sucesso | Média | RPS |
|---|---|---|---|---|
| Analyzer (spaCy) | 500 | 100% | 331 ms | 634 |
| Analyzer (12-lang mix) | 120 | 100% | 114 ms | 515 |
| Anonymizer | 1,000 | 100% | 8 ms | 1,501 |
| Structured Data | 100 | 100% | 331 ms | 144 |
| Frontend (Next.js) | 200 | 100% | 979 ms | 104 |
| Mixed Workload | 110 | 100% | 56 ms | 536 |
Velocidade do pipeline completo
Latência de ponta a ponta de análise + anonimização no novo servidor, medida com todos os modelos de idioma aquecidos.
| Idioma | Motor | Média do pipeline | Entidades |
|---|---|---|---|
| English | spaCy | 10.2 ms | 9 |
| German | spaCy | 13.4 ms | 9 |
| French | spaCy | 10.5 ms | 10 |
| Spanish | spaCy | 7.8 ms | 9 |
| Japanese | spaCy | 9.9 ms | 6 |
| Chinese | spaCy | 13.6 ms | 5 |
| Arabic | Transformer | 12.7 ms | 7 |
| Hebrew | Stanza | 117.3 ms | 6 |
Os tempos do servidor antigo incluem o pipeline completo de teste da GUI (Playwright + API). Os tempos do novo servidor são benchmarks apenas de API com todos os modelos aquecidos. A melhoria reflete ganhos reais de infraestrutura: cold starts eliminados, paralelismo 5× e armazenamento NVMe.
13 Marcos de Teste
Cada marco cobre uma área funcional distinta da plataforma, de autenticação a compatibilidade entre navegadores.
Authentication & Session
22/22 testes
Login, persistência de sessão, perfil, verificações de saúde, guardas de autenticação, logout/re-login
PII Detection (Analyzer)
62/62 testes
Análise de 48 idiomas via GUI, filtros de entidades, limites de pontuação, casos extremos, atalhos de teclado
Anonymizer (5 Operators)
40/40 testes
Operadores replace, redact, hash, mask, encrypt via API e GUI, ações rápidas, multi-idioma
Decrypt (Roundtrip)
22/22 testes
Roundtrips criptografar-depois-descriptografar para AES-256/128/192, multi-idioma, validação de chaves, texto grande
Batch & File Upload
20/20 testes
Processamento de texto em lote, UI de upload de arquivo, alternância de abas, status de processamento
Entity Management
28/28 testes
CRUD de entidades em 3 abas, criador de IA, regras de validação, verificação de limpeza
Preset Management
28/28 testes
CRUD de presets em 3 abas, fluxo de aplicação, regras de validação, verificação de limpeza
Settings (10 Tabs)
42/42 testes
Todas as 10 abas de configurações: Conta, Faturamento, Tokens, Segurança, Histórico, Idioma, Chaves de Criptografia, Serviços, Desenvolvedor
API Security
35/35 testes
Endpoints principais, cabeçalhos de segurança, política CORS, validação de entrada, segurança de autenticação, limitação de taxa
Token Usage Monitoring
24/24 testes
Consumo de tokens por tamanho de texto, operador, idioma, filtro de entidades, descriptografia, lote, exportação CSV
Lighthouse & Quality
20/20 testes
Pontuações do Lighthouse em 8 páginas, capacidade de resposta do viewport, acessibilidade, SEO, erros de console, links quebrados
48 Languages + RTL
56/56 testes
Análise de todos os 48 idiomas, 4 verificações de layout RTL, alternância de idioma, validação de seletor
Cross-Browser
20/20 testes
5 páginas em Chromium, Firefox, WebKit e Mobile Chrome — zero erros de console
Cobertura de 48 Idiomas
Cada idioma suportado é testado com amostras reais de PII. Três tipos de mecanismos NLP garantem precisão ideal por idioma.
| Idioma | Código | Motor | Entidades | Servidor antigo | Novo servidor | Ganho de velocidade | Status |
|---|---|---|---|---|---|---|---|
| English | en | spacy | 113 | 270 ms | 8 ms | 34× | |
| German | de | spacy | 148 | 313 ms | 7 ms | 45× | |
| Spanish | es | spacy | 104 | 1,841 ms | 6 ms | 307× | |
| French | fr | spacy | 133 | 2,327 ms | 8 ms | 291× | |
| Italian | it | spacy | 97 | 1,787 ms | 7 ms | 255× | |
| Portuguese | pt | spacy | 61 | 1,764 ms | 6 ms | 294× | |
| Dutch | nl | spacy | 122 | 2,486 ms | 6 ms | 414× | |
| Polish | pl | spacy | 70 | 1,726 ms | 8 ms | 216× | |
| Russian | ru | spacy | 41 | 2,226 ms | 6 ms | 371× | |
| Japanese | ja | spacy | 23 | 1,436 ms | 6 ms | 239× | |
| Chinese | zh | spacy | 24 | 2,554 ms | 7 ms | 365× | |
| Korean | ko | spacy | 16 | 1,305 ms | 6 ms | 218× | |
| Arabic | ar | transformer | 20 | 554 ms | 8 ms | 69× | |
| Hindi | hi | transformer | 22 | 486 ms | 7 ms | 69× | |
| Turkish | tr | spacy | 112 | 504 ms | 6 ms | 84× | |
| Romanian | ro | spacy | 122 | 1,730 ms | 6 ms | 288× | |
| Greek | el | spacy | 29 | 1,822 ms | 7 ms | 260× | |
| Croatian | hr | spacy | 67 | 989 ms | 7 ms | 141× | |
| Slovenian | sl | spacy | 64 | 1,264 ms | 7 ms | 181× | |
| Macedonian | mk | spacy | 24 | 1,259 ms | 7 ms | 180× | |
| Swedish | sv | spacy | 140 | 1,002 ms | 6 ms | 167× | |
| Danish | da | spacy | 107 | 1,910 ms | 7 ms | 273× | |
| Norwegian | nb | spacy | 109 | 1,606 ms | 7 ms | 229× | |
| Finnish | fi | spacy | 118 | 1,229 ms | 7 ms | 176× | |
| Icelandic | is | transformer | 73 | 559 ms | 8 ms | 70× | |
| Ukrainian | uk | spacy | 25 | 1,434 ms | 9 ms | 159× | |
| Lithuanian | lt | spacy | 86 | 1,601 ms | 7 ms | 229× | |
| Bulgarian | bg | stanza | 24 | 8,735 ms | 98 ms | 89× | |
| Serbian | sr | transformer | 24 | 519 ms | 8 ms | 65× | |
| Hungarian | hu | stanza | 82 | 8,141 ms | 39 ms | 209× | |
| Czech | cs | transformer | 81 | 562 ms | 8 ms | 70× | |
| Slovak | sk | transformer | 70 | 577 ms | 8 ms | 72× | |
| Latvian | lv | transformer | 83 | 526 ms | 8 ms | 66× | |
| Estonian | et | transformer | 79 | 531 ms | 8 ms | 66× | |
| Hebrew | he | stanza | 17 | 8,850 ms | 101 ms | 88× | |
| Persian | fa | transformer | 12 | 439 ms | 7 ms | 63× | |
| Vietnamese | vi | stanza | 74 | 11,282 ms | 99 ms | 114× | |
| Indonesian | id | transformer | 79 | 524 ms | 7 ms | 75× | |
| Thai | th | transformer | 20 | 521 ms | 5 ms | 104× | |
| Malay | ms | transformer | 87 | 510 ms | 7 ms | 73× | |
| Filipino | tl | transformer | 75 | 501 ms | 7 ms | 72× | |
| Bengali | bn | transformer | 18 | 455 ms | 7 ms | 65× | |
| Urdu | ur | transformer | 12 | 445 ms | 7 ms | 64× | |
| Afrikaans | af | stanza | 119 | 7,867 ms | 55 ms | 143× | |
| Swahili | sw | transformer | 68 | 526 ms | 7 ms | 75× | |
| Armenian | hy | stanza | 69 | 19,643 ms | 85 ms | 231× | |
| Catalan | ca | spacy | 100 | 3,267 ms | 7 ms | 467× | |
| Basque | eu | stanza | 82 | 783 ms | 40 ms | 20× |
Compatibilidade Entre Navegadores
5 páginas críticas testadas em 4 mecanismos de navegador com zero erros de console e sem transbordamento horizontal.
Chromium
5 de 5 páginas
Todos PassandoFirefox
5 de 5 páginas
Todos PassandoWebKit
5 de 5 páginas
Todos PassandoMobile Chrome
5 de 5 páginas
Todos PassandoTestes de Segurança
35 Testes35 testes de segurança dedicados cobrindo endpoints de API, cabeçalhos, CORS, validação de entrada, autenticação e limitação de taxa.
Endpoints Principais
8 tests8 testes verificando acessibilidade de endpoint de API e códigos de resposta
Cabeçalhos de Segurança
6 tests6 testes para CSP, X-Frame-Options, HSTS e mais
Política CORS
5 tests5 testes para tratamento de requisição de origem cruzada
Validação de Entrada
6 tests6 testes para XSS, injeção SQL e entrada malformada
Segurança de Autenticação
5 tests5 testes para bypass de autenticação e segurança de sessão
Limitação de Taxa
5 tests5 testes para aplicação de limite de taxa de API e cabeçalhos Retry-After
Análise de Uso de Tokens
Tokens Totais Usados: 76122 testes de consumo de tokens medindo eficiência de custo em operações, tamanhos de texto, idiomas e operadores.
| Operação | Caracteres | Idioma | Entidades | Operador | Tokens | Tempo de Resposta |
|---|---|---|---|---|---|---|
| analyze | 50 | en | 44 | N/A | 4 | 220 ms |
| analyze | 200 | en | 140 | N/A | 9 | 276 ms |
| analyze | 500 | en | 387 | N/A | 21 | 367 ms |
| analyze | 1,000 | en | 745 | N/A | 39 | 542 ms |
| analyze | 5,000 | en | 3776 | N/A | 193 | 4,398 ms |
| analyze | 10,000 | en | 7566 | N/A | 385 | 14,494 ms |
| anonymize | 160 | en | 113 | replace | 7 | 291 ms |
| anonymize | 160 | en | 113 | redact | 7 | 236 ms |
| anonymize | 160 | en | 113 | hash | 7 | 243 ms |
| anonymize | 160 | en | 113 | mask | 7 | 276 ms |
| anonymize | 160 | en | 113 | encrypt | 7 | 242 ms |
| analyze | 148 | en | 4 | lang-compare | 2 | 0 ms |
| analyze | 145 | de | 3 | lang-compare | 2 | 0 ms |
| analyze | 144 | es | 3 | lang-compare | 2 | 0 ms |
| analyze | 145 | fr | 4 | lang-compare | 2 | 0 ms |
| analyze | 136 | it | 3 | lang-compare | 2 | 0 ms |
| analyze | 145 | pt | 3 | lang-compare | 2 | 0 ms |
| analyze | 137 | nl | 3 | lang-compare | 2 | 0 ms |
| analyze | 137 | pl | 2 | lang-compare | 2 | 0 ms |
| analyze | 132 | ru | 3 | lang-compare | 2 | 0 ms |
| analyze | 84 | ja | 2 | lang-compare | 2 | 0 ms |
| analyze | 70 | zh | 2 | lang-compare | 2 | 0 ms |
| analyze | 123 | ar | 4 | lang-compare | 2 | 0 ms |
| analyze | 160 | en | 106 | PERSON only | 7 | 258 ms |
| analyze | 160 | en | 108 | PERSON+EMAIL+PHONE | 8 | 266 ms |
| analyze | 160 | en | 113 | All entities | 8 | 264 ms |
| decrypt | 342 | en | 37 | decrypt | 2 | 188 ms |
| batch-analyze | 476 | en,de,fr | 394 | N/A | 26 | 5,278 ms |
Metodologia de Teste
Nossa suite de testes combina testes Playwright em nível de GUI com validação API direta para cobertura abrangente.
Testes de GUI
A automação de navegador Playwright testa fluxos de trabalho reais do usuário — clicando botões, preenchendo formulários, navegando entre páginas e verificando saída visual.
Testes de API
Requisições HTTP diretas validam cada endpoint com casos extremos, entrada malformada e condições de limite que os testes de GUI sozinhos não conseguem cobrir.
Armazenamento em Cache de Sessão
As sessões autenticadas são armazenadas em cache e reutilizadas em marcos, reduzindo o tempo de execução do teste enquanto mantém o comportamento realista do usuário.
Limpeza de CRUD
Cada entidade, preset e chave de criptografia criados durante testes é limpo posteriormente, garantindo que os testes sejam idempotentes e repetíveis.
About this page
We update this page when our platform or the law changes.
Read our founder note for how we work.
Each change shows up in the timestamp at the top.
Related reading
- Common questions
- Glossary
- How tokens work
- Security posture
- Where we comply
- What we detect
- Case studies
- Release notes
We follow these rules
- GDPR (EU 2016/679).
- ISO/IEC 27001:2022.
- NIS2 (EU 2022/2555).
- HIPAA safe harbor under 45 CFR § 164.514(b)(2).
Our promise
We do not sell your data.
We do not train models on your text.
We store your files in Germany.
You can delete your account at any time.
You own your work.
Where we run
Our servers live in Falkenstein, Germany.
We use Hetzner. They hold ISO 27001 certification.
All data stays in the EU.
Backups run every day.
Need help?
Email support@anonym.legal.
We reply within one business day.
How we test
We run a full check suite on every release.
Each surface gets its own sweep script and report.
Human reviewers spot-check the output each week.
We track recall and precision on a labelled set.
Bad runs block the deploy.
What we never do
- We never sell your information to third parties.
- We never train models on what you upload.
- We never keep your work after you delete it.
- We never share keys with any outside firm.
- We never run ads inside the product.
Plans in plain words
We sell credits, not seats.
One credit covers one short job.
Long jobs use a few credits each.
You can top up at any time.
Unused credits roll over each month.
Read the plans page for current rates.
Who built this
A small team of engineers and lawyers built this.
We ship from Europe and work in the open.
Our founder note spells out why we started.
Where to start
- Open the web app and try a sample file.
- Learn how credits get counted.
- See current plans and limits.
- Meet the team behind the product.
How the parts fit
A browser add-on cleans text inside Chrome.
A Word plug-in handles drafts in Office.
A small desktop tool works on whole folders.
An agent protocol link feeds large models safely.
All four share one core engine and one rule set.
Words from our team
We started this work after a lunch about cookies.
One friend kept getting odd ads on her phone.
We asked why a court file leaked through a draft.
We sketched the first build on a napkin that week.
By month three we had a tiny demo for a friend.
She used it on her first case the next day.
Common questions we hear
Can the tool read scanned PDFs? Yes, with OCR.
Does it work on long files? Yes, in small chunks.
Can I roll my own rule set? Yes, save it as a preset.
Does it run offline? The desktop build runs offline.
Do you keep my files? No, the cloud build wipes after each run.
Will it learn from my work? No, we never train on inputs.
A short tour of the workflow
Upload a file or paste a snippet of prose.
Pick the entities you want gone from the draft.
Choose a method: replace, mask, hash, encrypt, or redact.
Press run and watch the side panel show each hit.
Skim the result and tweak any rule that misfired.
Save the cleaned file or send it to a teammate.