Hey everyone! I’m gearing up to launch a new project I’ve been pouring a lot of love into. It's called Cloak.
The Problem
We constantly feed data into LLMs, but scrubbing sensitive Personal Identifiable Information (PII) manually is tedious and risky. I wanted a robust tool that could instantly redact sensitive data, but with one absolute rule: the data must never leave the device.
Enter Cloak
Cloak is a privacy-first web application designed to redact PII from text, images, and PDFs instantly. I wanted to nail a highly immersive, Apple-inspired interface, so making the experience feel native, fluid, and heavily polished was a massive priority during development.
Here are the core features:
- Zero Server Uploads: Drag and drop text, images, or PDFs into the app. Everything is processed entirely within your browser.
- On-Device AI Detection: It uses standard regex patterns for predictable formats (like SSNs, credit cards, and bank accounts), but also includes an optional "Deep Scan". This utilizes an on-device NER model (
Xenova/bert-base-NER) running via Web Workers to catch trickier entities. - Client-Side OCR: It extracts and redacts text directly from images utilizing
tesseract.js. - LLM Response Restorer: Instead of just blacking out text, Cloak can generate a "Synthetic" version of your document. It swaps real names and IDs for fake ones. Once your LLM generates a response using the fake data, Cloak’s restorer maps your original data back into the output.
- Visual Redaction Styles: You can toggle between Black Box, Blur, or Pixelate styles for image and text redactions.
The Stack
Building a heavy computational tool that stays completely client-side meant relying on some great libraries:
- Framework: Next.js
- Styling & Animations: Tailwind CSS v4 alongside Framer Motion for buttery-smooth, native-feeling transitions and pill menus.
- Database:
dexiefor saving your session history locally via IndexedDB. - Document Handling:
pdf-libandpdfjs-distfor client-side PDF parsing and rendering.
I’m finalizing the build and polishing the final animations before the official launch. I’d love to hear your thoughts on building local-first tools or dealing with PII in the age of LLMs. Let me know what you think in the comments!












