By George Curta · Last updated 2026-04-07
419/419 testů prošlo
100% míra úspěchuKomplexní sada testů v produkci zahrnující interakce s grafickým rozhraním, koncové body API, bezpečnost, výkon a kompatibilitu mezi prohlížeči — vše.
Upgrade Infrastruktury
Až 467× RychlejiV březnu 2026 jsme migrovali ze sdíleného VPS na vyhrazený server s 16× více RAM, 5 paralelními pracovními procesy analyzátoru a všemi 48 jazykovými.
Souběžná Výkonnost
Nový server zpracovává stovky souběžných požadavků ve všech službách bez chyb.
| Služba | Souběžně | Úspěch | Průměr | 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 |
Úplná Rychlost Kanálu
Latence end-to-end analýza + anonymizace na novém serveru, měřeno se všemi teplými jazykovými modely.
| Jazyk | Motor | Průměr Kanálu | Entity |
|---|---|---|---|
| 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 |
Časy starého serveru zahrnují úplný testovací pipeline GUI (Playwright + API). Časy nového serveru jsou pouze benchmark API se všemi teplými modely. Zlepšení odráží skutečné zisky infrastruktury: odstraněné studené starty, 5× paralelismus a NVMe úložiště.
13 milníků testování
Každý milník zahrnuje samostatnou funkční oblast platformy, od ověřování totožnosti až k kompatibilitě mezi prohlížeči.
Authentication & Session
22/22 testů
Přihlášení, trvalost relace, profil, zdravotní kontroly, hlídací ochrana, odhlášení/opětovné přihlášení
PII Detection (Analyzer)
62/62 testů
Analýza 48 jazyků prostřednictvím grafického rozhraní, filtry entit, prahové hodnoty skóre, hraniční případy, klávesové zkratky
Anonymizer (5 Operators)
40/40 testů
Operátoři Replace, Redact, Hash, Mask, Encrypt prostřednictvím API a GUI, rychlé akce, vícejazyčné
Decrypt (Roundtrip)
22/22 testů
Cykly šifrování-pak-dešifrování pro AES-256/128/192, vícejazyčné, ověření klíče, velký text
Batch & File Upload
20/20 testů
Dávkové zpracování textu, uživatelské rozhraní nahrávání souborů, přepínání karty, stav zpracování
Entity Management
28/28 testů
CRUD entit na 3 kartách, Tvůrce AI, ověřovací pravidla, ověření čistoty
Preset Management
28/28 testů
CRUD předvoleb na 3 kartách, tok aplikace, ověřovací pravidla, ověření čistoty
Settings (10 Tabs)
42/42 testů
Všech 10 karet nastavení: Účet, Fakturace, Tokeny, Bezpečnost, Historie, Jazyk, Šifrovací klíče, Služby, Vývojář
API Security
35/35 testů
Základní koncové body, záhlaví zabezpečení, politika CORS, ověřování vstupu, bezpečnost ověření, omezení rychlosti
Token Usage Monitoring
24/24 testů
Spotřeba tokenu podle velikosti textu, operátoru, jazyka, filtru entit, dešifrování, dávky, export CSV
Lighthouse & Quality
20/20 testů
Skóre Lighthouse na 8 stránkách, citlivost na pohled, přístupnost, SEO, chyby konzoly, nefunkční odkazy
48 Languages + RTL
56/56 testů
Analýza pro všechny 48 jazyků, 4 kontroly rozvržení RTL, přepínání jazyka, ověření výběru
Cross-Browser
20/20 testů
5 stránek přes Chromium, Firefox, WebKit a Mobile Chrome — nula chyb konzoly
Pokrytí 48 jazyků
Každý podporovaný jazyk je testován se skutečnými vzorky PII. Tři typy motorů NLP zajistí optimální přesnost pro každý jazyk.
| Jazyk | Kód | Motor | Entity | Starý Server | Nový Server | Zisk na Rychlosti | Stav |
|---|---|---|---|---|---|---|---|
| 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× |
Kompatibilita mezi prohlížeči
5 kritických stránek testovaných na 4 motorech prohlížeče bez chyb konzoly a bez horizontálního přetečení.
Chromium
5 z 5 stránek
Vše procházíFirefox
5 z 5 stránek
Vše procházíWebKit
5 z 5 stránek
Vše procházíMobile Chrome
5 z 5 stránek
Vše procházíTestování bezpečnosti
35 testů35 vyhrazených testů bezpečnosti zahrnujících koncové body API, záhlaví, CORS, ověřování vstupu, ověřování a omezení rychlosti.
Základní koncové body
8 tests8 testů ověřujících dostupnost koncového bodu API a kódy odpovědí
Záhlaví zabezpečení
6 tests6 testů pro CSP, X-Frame-Options, HSTS a další
Politika CORS
5 tests5 testů pro zpracování požadavků mezi zdroji
Ověření vstupu
6 tests6 testů pro XSS, injekci SQL a nesprávný vstup
Zabezpečení ověření
5 tests5 testů pro obejití ověření a zabezpečení relace
Omezení rychlosti
5 tests5 testů pro vynucení limitu rychlosti API a záhlaví Retry-After
Analýza využití tokenů
Celkem použitých tokenů: 76122 testů spotřeby tokenů měřících efektivitu nákladů v operacích, velikostech textu, jazycích a operátorech.
| Operace | Znaky | Jazyk | Entity | Operátor | Tokeny | Doba odpovědi |
|---|---|---|---|---|---|---|
| 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 |
Metodika testování
Naša sada testů kombinuje testování Playwright na úrovni GUI s přímým ověřením API pro komplexní pokrytí.
Testování GUI
Automatizace prohlížeče Playwright testuje skutečné pracovní toky uživatelů — klikání na tlačítka, vyplňování formulářů, navigace mezi stránkami a ověřování vizuálního výstupu.
Testování API
Přímé HTTP požadavky ověřují každý koncový bod s hraniční případy, nesprávným vstupem a podmínkami, které testování GUI samo nemůže pokrýt.
Ukládání relace do mezipaměti
Ověřené relace jsou ukládány do mezipaměti a znovu používány v milnících, snižují čas chodu testů při zachování realistického chování uživatele.
Čištění CRUD
Každá entita, předvolba a šifrovací klíč vytvořený během testování jsou následně vyčištěny, zajistí, že testy jsou idempotentní a opakovatelné.
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.