Inspiration
- Keep sensitive PDFs private by redacting entirely in-browser—so legal, medical, and financial docs never leave the device.
What it does
- Auto-detects PII (names, phones, emails, addresses, IBAN/AHV/SSN, policy/claim IDs, credit cards) across English, German, French, Italian, and Spanish.
- Lets users review/toggle highlights and draw manual boxes.
- Burns black rectangles into the PDF and issues an AES-GCM–encrypted key file to restore the original.
How we built it
- React + Vite + TypeScript.
pdfjs-distfor text and bounding boxes.- Multilingual NER (
@huggingface/transformers, XLM-R WASM) plus EU-tuned regex. pdf-libfor writing redactions.- Web Crypto (AES-GCM) to encrypt redaction text and the original PDF in the key file.
Challenges we ran into
- WASM backend quirks (threading/env guards).
- Regex over-matching headers; tightened to value-only boxes.
- Preventing arbitrary JSON restores—encrypted the original to bind key and file.
Accomplishments that we're proud of
- Fully client-side pipeline: zero data leaves the browser.
- Multilingual, EU-focused PII coverage.
- Pixel-perfect unredaction using the encrypted original stored in the key file.
What we learned
- Multilingual NER + domain regex improves recall with fewer false positives.
- Precise char-to-bbox mapping yields cleaner highlights.
- Secure redaction needs origin binding, not just per-span encryption.
What's next for Redactify
- Optional OCR for scan-only PDFs.
- More locales/ID patterns (Nordic, Dutch) and tax formats.
- Inline QA view to compare detected vs. remaining text.
- Keyboard-driven review and bulk accept/deny.
Built With
- css
- huggingface/transformers
- ner
- react
- typescript
- web


Log in or sign up for Devpost to join the conversation.