By George Curta · Last updated 2026-04-07
419/419 testia läpäisty
100% läpäisyprosenttiKattava tuotantotestisarja, joka kattaa GUI-vuorovaikutukset, API-päätepisteet, turvallisuuden, suorituskyvyn ja selainten yhteensopivuuden — kaikki.
Infrastruktuurin päivitys
Jopa 467× NopeampiMaaliskuussa 2026 siirsyimme jaetusta VPS:stä omalle palvelimelle, jossa on 16× enemmän RAM-muistia, 5 rinnakkaista analysaattoriprosessia ja kaikki 48.
Samanaikainen Suorituskyky
Uusi palvelin käsittelee satoja samanaikaisia pyyntöjä kaikissa palveluissa ilman virheitä.
| Palvelu | Samanaikainen | Onnistui | Keskiarvo | 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 |
Täyden Putkilinjan Nopeus
Päästä päähän analyysi + anonymisointiviive uudella palvelimella, mitattu kaikilla kielimalleilla lämpimänä.
| Kieli | Moottori | Putkilinjan Keskiarvo | Entiteetit |
|---|---|---|---|
| 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 |
Vanhat palvelinajat sisältävät täyden GUI-testipipelinin (Playwright + API). Uudet palvelinajat ovat vain API-vertailua kaikkien kielimallien ollessa käytössä. Parannus heijastaa todellisia infrastruktuurihyötyjä: poistuneet kylmät käynnistykset, 5× rinnakkaisuus ja NVMe-tallennustila.
13 testitä virstanpylvästä
Jokainen virstanpylväs kattaa alustan erillisen toiminta-alueen, todentamisesta selainten yhteensopivuuteen.
Authentication & Session
22/22 testit
Kirjautuminen, istunnon säilytys, profiili, terveystarkistukset, todennus-vardit, uloskirjautuminen/uudelleenkirjautuminen
PII Detection (Analyzer)
62/62 testit
48 kielen analyysi GUI:n kautta, kohdesuodattimet, pistekynnykset, reunatapaukset, näppäimistön pikanäppäimet
Anonymizer (5 Operators)
40/40 testit
Replace, Redact, Hash, Mask, Encrypt operaattoreita API:n ja GUI:n kautta, pikatoiminnot, monikieliset
Decrypt (Roundtrip)
22/22 testit
Encrypt-sitten-decrypt-kierrot AES-256/128/192:lle, monikieliset, avainvalidointi, suuri teksti
Batch & File Upload
20/20 testit
Erä-tekstinkäsittely, tiedoston lataus-käyttöliittymä, välilehden vaihtaminen, käsittelyn tila
Entity Management
28/28 testit
Kohteen CRUD kolmella välilehdellä, tekoäly-luoja, vahvistussäännöt, puhdistuksen vahvistaminen
Preset Management
28/28 testit
Ennakkoasetuksen CRUD kolmella välilehdellä, sovellustyönkulku, vahvistussäännöt, puhdistuksen vahvistaminen
Settings (10 Tabs)
42/42 testit
Kaikki 10 asetusväliä: Tili, Laskutus, Tunnusluvut, Turvallisuus, Historia, Kieli, Salausavaimet, Palvelut, Kehittäjä
API Security
35/35 testit
Ydinpäätepisteet, turvallisuuden otsikot, CORS-käytäntö, syötevalidointi, todennus-turvallisuus, nopeusrajoitus
Token Usage Monitoring
24/24 testit
Tunnuslukon kulutus tekstitiedoston koon, operaattorin, kielen, kohdteen suodattimen, salauksen purun, erän ja CSV-viennin mukaan
Lighthouse & Quality
20/20 testit
Lighthouse-pisteet 8 sivulla, näkymäportin reagointikyky, saavutettavuus, SEO, konsolivirheet, rikkinäiset linkit
48 Languages + RTL
56/56 testit
Analyysi kaikille 48 kielille, 4 RTL-asettelu-tarkistusta, kielen vaihtaminen, valitsimen validointi
Cross-Browser
20/20 testit
5 sivua Chromium-, Firefox-, WebKit- ja mobiili-Chrome-selaimissa — nolla konsolivirheitä
48 kielen kattavuus
Jokainen tuettu kieli testataan tosielämän PII-näytteillä. Kolme NLP-moottorityyppiä varmistavat optimaalisen tarkkuuden kielittäin.
| Kieli | Koodi | Moottori | Kohteet | Vanha Palvelin | Uusi Palvelin | Nopeusparannos | Tila |
|---|---|---|---|---|---|---|---|
| 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× |
Selainten yhteensopivuus
5 kriittistä sivua testataan 4 selaimen moottorilla ilman konsolivirheitä ja vaakasuuntaista ylivuotoa.
Chromium
5 5 sivusta
Kaikki läpäisseetFirefox
5 5 sivusta
Kaikki läpäisseetWebKit
5 5 sivusta
Kaikki läpäisseetMobile Chrome
5 5 sivusta
Kaikki läpäisseetTurvallisuuden testaus
35 testiä35 erityistä turvallisuustestiä, jotka kattavat API-päätepisteet, otsikot, CORS, syötevalidointi, todentamisen ja nopeudenrajoituksen.
Ydinpäätepisteet
8 tests8 testiä, jotka vahvistavat API-päätepisteen saavutettavuuden ja vastakoodit
Turvallisuuden otsikot
6 tests6 testiä CSP, X-Frame-Options, HSTS ja muille
CORS-käytäntö
5 tests5 testiä eri alkuperän pyyntöjen käsittelyyn
Syötevalidointi
6 tests6 testiä XSS, SQL-injektioon ja väärin muotoillusta syötteestä
Todennus-turvallisuus
5 tests5 testiä todentamisvaraukseen ja istunnon turvallisuuteen
Nopeudenrajoitus
5 tests5 testiä API-nopeudenrajoituksen täytäntöönpanoon ja Retry-After-otsikkoihin
Tunnuslukon käytön analyysi
Käytetyt tunnuslukot yhteensä: 76122 tunnuslukon kulutustestiä, jotka mittaavat kustannustehokkuutta operaatioiden, tekstitiedostojen, kielten ja operaattoreiden välillä.
| Operaatio | Merkkejä | Kieli | Kohteet | Operaattori | Tunnusluvut | Vastausaika |
|---|---|---|---|---|---|---|
| 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 |
Testin metodologia
Testisarjamme yhdistää Playwright-testauksen GUI-tasolla suoraan API-vahvistuksella kattavaa kattavuutta varten.
GUI-testaus
Playwright-selaimen automatisointi testaa todellisia käyttäjän työnkulkuja — painikkeiden klikkaaminen, lomakkeiden täyttäminen, siirtyminen sivujen välillä ja visuaalisen tuotoksen verifiointi.
API-testaus
Suorat HTTP-pyynnöt vahvistavat jokaisen päätepisteen reunatapauksin, väärin muotoillulla syötteellä ja rajahduilla, joita GUI-testaus yksin ei voi kattaa.
Istunnon välimuisti
Todentautuneet istunnot on välimuistissa ja uudelleenkäytetään virstanpylväiden välillä, mikä vähentää testin ajoaikaa samalla kun ylläpidetään realistista käyttäjän käyttäytymistä.
CRUD-siivous
Jokainen kohtio, ennakkoasetus ja salausavain, joka on luotu testauksen aikana, puhdistetaan jälkeenpäin, jotta testit ovat idempotentit ja toistettavissa.
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.