By George Curta · Last updated 2026-04-07
419/419 Test Superati
100% di Tasso di SuccessoSuite di test di produzione completa che copre le interazioni GUI, gli endpoint API, la sicurezza, le prestazioni e la compatibilità tra i browser — il.
Aggiornamento dell'infrastruttura
Fino a 467× più veloceA marzo 2026, abbiamo migrato da un VPS condiviso a un server dedicato con 16× più RAM, 5 worker analizzatori paralleli e tutti i 48 modelli.
Prestazioni concorrenti
Il nuovo server gestisce centinaia di richieste simultanee su tutti i servizi senza errori.
| Servizio | Concorrente | Successo | Media | 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 |
Velocità della pipeline completa
Latenza end-to-end di analisi + anonimizzazione sul nuovo server, misurata con tutti i modelli linguistici pronti.
| Lingua | Motore | Media pipeline | Entità |
|---|---|---|---|
| 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 |
I tempi del server precedente includono la pipeline di test GUI completa (Playwright + API). I tempi del nuovo server sono benchmark solo API con tutti i modelli pronti. Il miglioramento riflette i veri guadagni infrastrutturali: cold start eliminati, parallelismo 5× e archiviazione NVMe.
13 Milestone di Test
Ogni milestone copre un'area funzionale distinta della piattaforma, dall'autenticazione alla compatibilità tra i browser.
Authentication & Session
22/22 test
Accesso, persistenza della sessione, profilo, controlli di salute, guardie di autenticazione, disconnessione/ri-accesso
PII Detection (Analyzer)
62/62 test
Analisi di 48 lingue tramite GUI, filtri di entità, soglie di score, casi limite, scorciatoie da tastiera
Anonymizer (5 Operators)
40/40 test
Operatori replace, redact, hash, mask, encrypt tramite API e GUI, azioni rapide, multilingue
Decrypt (Roundtrip)
22/22 test
Roundtrip cifra-poi-decifra per AES-256/128/192, multilingue, convalida della chiave, testo grande
Batch & File Upload
20/20 test
Elaborazione di testo in batch, UI di caricamento file, cambio di scheda, stato di elaborazione
Entity Management
28/28 test
CRUD di entità su 3 schede, Creatore AI, regole di convalida, verifica di pulizia
Preset Management
28/28 test
CRUD di preset su 3 schede, flusso di applicazione, regole di convalida, verifica di pulizia
Settings (10 Tabs)
42/42 test
Tutte le 10 schede delle impostazioni: Account, Fatturazione, Token, Sicurezza, Cronologia, Lingua, Chiavi di Crittografia, Servizi, Sviluppatore
API Security
35/35 test
Endpoint principali, intestazioni di sicurezza, politica CORS, convalida dell'input, sicurezza dell'autenticazione, limitazione della velocità
Token Usage Monitoring
24/24 test
Consumo di token per dimensione del testo, operatore, lingua, filtro di entità, decrittazione, batch, esportazione CSV
Lighthouse & Quality
20/20 test
Punteggi Lighthouse su 8 pagine, capacità di risposta del viewport, accessibilità, SEO, errori della console, link interrotti
48 Languages + RTL
56/56 test
Analisi per tutte le 48 lingue, 4 controlli di layout RTL, cambio di lingua, convalida del selettore
Cross-Browser
20/20 test
5 pagine su Chromium, Firefox, WebKit e Mobile Chrome — zero errori della console
Copertura di 48 Lingue
Ogni lingua supportata è testata con campioni PII reali. Tre tipi di motori NLP garantiscono una precisione ottimale per lingua.
| Lingua | Codice | Motore | Entità | Server precedente | Nuovo server | Guadagno di velocità | Stato |
|---|---|---|---|---|---|---|---|
| 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× |
Compatibilità tra Browser
5 pagine critiche testate su 4 motori browser con zero errori della console e senza overflow orizzontale.
Chromium
5 di 5 pagine
Tutti SuperatiFirefox
5 di 5 pagine
Tutti SuperatiWebKit
5 di 5 pagine
Tutti SuperatiMobile Chrome
5 di 5 pagine
Tutti SuperatiTest di Sicurezza
35 Test35 test di sicurezza dedicati che coprono endpoint API, intestazioni, CORS, convalida dell'input, autenticazione e limitazione della velocità.
Endpoint Principali
8 tests8 test che verificano l'accessibilità dell'endpoint API e i codici di risposta
Intestazioni di Sicurezza
6 tests6 test per CSP, X-Frame-Options, HSTS e altro
Politica CORS
5 tests5 test per la gestione delle richieste cross-origin
Convalida dell'Input
6 tests6 test per XSS, iniezione SQL e input malformato
Sicurezza dell'Autenticazione
5 tests5 test per aggirare l'autenticazione e la sicurezza della sessione
Limitazione della Velocità
5 tests5 test per l'applicazione del limite di velocità API e intestazioni Retry-After
Analisi dell'Utilizzo dei Token
Token Totali Utilizzati: 76122 test di consumo di token che misurano l'efficienza dei costi in operazioni, dimensioni di testo, lingue e operatori.
| Operazione | Caratteri | Lingua | Entità | Operatore | Token | Tempo di Risposta |
|---|---|---|---|---|---|---|
| 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 di Test
La nostra suite di test combina i test Playwright a livello GUI con la convalida API diretta per una copertura completa.
Test GUI
L'automazione del browser Playwright testa flussi di lavoro reali dell'utente — fare clic sui pulsanti, compilare moduli, navigare tra le pagine e verificare l'output visivo.
Test API
Le richieste HTTP dirette convalidano ogni endpoint con casi limite, input malformato e condizioni limite che i test GUI da soli non possono coprire.
Memorizzazione in Cache della Sessione
Le sessioni autenticate vengono memorizzate in cache e riutilizzate nei milestone, riducendo il tempo di esecuzione del test mantenendo il comportamento realistico dell'utente.
Pulizia CRUD
Ogni entità, preset e chiave di crittografia creati durante i test viene pulito in seguito, garantendo che i test siano idempotenti e ripetibili.
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.