By George Curta · Last updated 2026-04-07
419/419 testów zdanych
100% wskaźnik zdawalnościKompleksowy pakiet testów produkcyjnych obejmujący interakcje GUI, endpointy API, bezpieczeństwo, wydajność i zgodność między przeglądarkami — wszystko.
Modernizacja infrastruktury
Do 467× szybciejW marcu 2026 r. przeprowadziliśmy migrację z współdzielonego VPS na dedykowany serwer z 16× większą ilością pamięci RAM, 5 równoległy mi pracownikami.
Wydajność współbieżna
Nowy serwer obsługuje setki jednoczesnych żądań na wszystkich usługach bez żadnych awarii.
| Usługa | Współbieżne | Sukces | Średnia | 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 |
Pełna szybkość potoku
Analiza end-to-end + opóźnienie anonimizacji na nowym serwerze, mierzone ze wszystkimi modelami językowymi w stanie ciepłym.
| Język | Silnik | Średnia potoku | Jednostki |
|---|---|---|---|
| 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 |
Czasy na starym serwerze obejmują pełny potok testów GUI (Playwright + API). Czasy na nowym serwerze to porównania tylko API ze wszystkimi modelami w stanie ciepłym. Poprawa odzwierciedla rzeczywiste zyski infrastruktury: wyeliminowane zimne starty, równoległa funkcjonowanie 5×, przechowywanie NVMe.
13 kamieni milowych testów
Każdy kamień milowy obejmuje odrębny obszar funkcjonalny platformy, od uwierzytelnienia po kompatybilność między przeglądarkami.
Authentication & Session
22/22 testy
Logowanie, trwałość sesji, profil, kontrole zdrowotne, strażnicy auth, wylogowanie/ponowne logowanie
PII Detection (Analyzer)
62/62 testy
Analiza w 48 językach za pośrednictwem GUI, filtry encji, progi wyników, przypadki graniczne, skróty klawiaturowe
Anonymizer (5 Operators)
40/40 testy
Operatory Replace, Redact, Hash, Mask, Encrypt za pośrednictwem API i GUI, szybkie akcje, wielojęzyczne
Decrypt (Roundtrip)
22/22 testy
Rundy szyfruj-a-następnie-odszyfruj dla AES-256/128/192, wielojęzyczne, walidacja klucza, duży tekst
Batch & File Upload
20/20 testy
Przetwarzanie tekstu wsadowego, interfejs użytkownika przesyłania pliku, przełączanie kart, status przetwarzania
Entity Management
28/28 testy
CRUD encji na 3 kartach, Kreator AI, reguły walidacji, weryfikacja czyszczenia
Preset Management
28/28 testy
CRUD ustawień wstępnych na 3 kartach, przepływ aplikacji, reguły walidacji, weryfikacja czyszczenia
Settings (10 Tabs)
42/42 testy
Wszystkie 10 kart ustawień: Konto, Rozliczenia, Tokeny, Bezpieczeństwo, Historia, Język, Klucze szyfrowania, Usługi, Developer
API Security
35/35 testy
Endpointy rdzenia, nagłówki bezpieczeństwa, polityka CORS, walidacja wejścia, bezpieczeństwo auth, ograniczenie szybkości
Token Usage Monitoring
24/24 testy
Zużycie tokenów według rozmiaru tekstu, operatora, języka, filtra encji, odszyfrowywania, partii, eksportu CSV
Lighthouse & Quality
20/20 testy
Wyniki Lighthouse na 8 stronach, responsywność viewportu, dostępność, SEO, błędy konsoli, uszkodzane linki
48 Languages + RTL
56/56 testy
Analiza dla wszystkich 48 języków, 4 kontroli układu RTL, przełączanie języków, walidacja selektora
Cross-Browser
20/20 testy
5 stron w przeglądarkach Chromium, Firefox, WebKit i Mobile Chrome — zero błędów konsoli
48-języka pokrycia
Każdy obsługiwany język jest testowany z rzeczywistymi próbkami PII. Trzy typy silnika NLP zapewniają optymalną dokładność dla każdego języka.
| Język | Kod | Silnik | Encje | Stary serwer | Nowy serwer | Przyspieszenie | 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× |
Kompatybilność między przeglądarkami
5 krytycznych stron testowanych na 4 silnikach przeglądarki bez błędów konsoli i przelewu poziomego.
Chromium
5 z 5 stron
Wszystkie zdaneFirefox
5 z 5 stron
Wszystkie zdaneWebKit
5 z 5 stron
Wszystkie zdaneMobile Chrome
5 z 5 stron
Wszystkie zdaneTestowanie bezpieczeństwa
35 testów35 dedykowanych testów bezpieczeństwa obejmujących endpointy API, nagłówki, CORS, walidację wejścia, uwierzytelnienie i ograniczenie szybkości.
Endpointy rdzenia
8 tests8 testów weryfikujących dostępność endpointu API i kody odpowiedzi
Nagłówki bezpieczeństwa
6 tests6 testów dla CSP, X-Frame-Options, HSTS i innych
Polityka CORS
5 tests5 testów do obsługi żądań między źródłami
Walidacja wejścia
6 tests6 testów dla XSS, iniekcji SQL i zniekształconego wejścia
Bezpieczeństwo uwierzytelnienia
5 tests5 testów do ominięcia uwierzytelnienia i bezpieczeństwa sesji
Ograniczenie szybkości
5 tests5 testów do egzekwowania limitu szybkości API i nagłówków Retry-After
Analiza użycia tokenów
Całkowite używane tokeny: 76122 testy zużycia tokenów mierzące efektywność kosztów dla operacji, rozmiarów tekstów, języków i operatorów.
| Operacja | Znaki | Język | Encje | Operator | Tokeny | Czas odpowiedzi |
|---|---|---|---|---|---|---|
| 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 testowania
Nasz pakiet testów łączy testowanie Playwright na poziomie GUI z bezpośrednią walidacją API w celu zapewnienia kompleksowego pokrycia.
Testowanie GUI
Automatyzacja przeglądarki Playwright testuje rzeczywiste przepływy pracy użytkownika — klikanie przycisków, wypełnianie formularzy, nawigację między stronami i weryfikację danych wyjściowych wizualnych.
Testowanie API
Bezpośrednie żądania HTTP sprawdzają każdy endpoint z przypadkami granicznymi, zniekształconym wejściem i warunkami granicznymi, które testowanie GUI alone nie może pokryć.
Buforowanie sesji
Uwierzytelniające sesje są buforowane i ponownie używane w kamieńach milowych, co zmniejsza czas wykonywania testów, jednocześnie zachowując realistyczne zachowanie użytkownika.
Czyszczenie CRUD
Każda encja, ustawienie wstępne i klucz szyfrowania utworzony podczas testowania jest czyszczony po zakończeniu, zapewniając, że testy są idempotentne i powtarzalne.
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.