REDACTA document privacy studio
SIMULATION MODE #BuildHybridAI 2026

On-device first · Nothing raw leaves this page

The cloud only ever seesthe redacted document.

Redacta scans contracts, payslips and medical letters for personal data entirely on your device, using Gemini Nano through Firebase AI Logic. You review and approve every redaction. Only then — and only the redacted text — may a cloud model see it for deeper analysis.

0raw bytes sent to the cloud
—of inference served on-device
—sensitive spans found in this session
Built onFirebase AI LogicGemini NanoGeminiChrome Prompt APIApp Check

What Redacta does

Three moves, one boundary.Every one of them visible while it happens.

Scan on-device

Gemini Nano reads the document inside your browser and returns structured entities: names, IDs, accounts, addresses, amounts, dates. Zero network traffic while it works.

You approve every redaction

Every span is listed with its type, confidence and sensitivity. Critical and high spans start redacted; you can keep or redact any span individually before anything else happens.

The ledger remembers

Every inference step is recorded with where it ran, what it carried, and a fingerprint of the payload. On-device rows can be cross-checked in the Network tab.

The panels above show the same components the studio uses, with invented data. The studio above does this live.

The studio

Try it on a sample document.Nothing leaves the device until you say so.

On-device model

checking…

Gemini Nano, running inside Chrome via the Prompt API. The scan lane is created with InferenceMode.ONLY_ON_DEVICE: if Nano cannot run, the scan refuses — a raw document is never re-routed to the cloud as a fallback.

Model state has not been prepared yet.

EngineGemini Nano (Chrome built-in AI)
Scan modeONLY_ON_DEVICE
Analysis modePREFER_IN_CLOUD, redacted input only
Cost of on-device inference$0, unmetered

Detecting Firebase AI Logic…

1 · Add a document

0 characters
ON-DEVICE LANE · nothing is uploaded

The scan is a single-turn structured request: document in, entity JSON out (schema in data/schema.json). It works with the network cable pulled.

2 · What the scanner found

awaiting scan

Your document will appear here with every sensitive span highlighted in place, exactly where the scanner found it.

Critical High Medium Low

3 · Review the redactions

—/100

Sensitivity score

Run a scan to see the on-device summary and the redaction plan. You stay in control: every span can be kept or redacted individually before anything leaves this page.

No entities yet.

4 · The redacted document

The exact text a cloud model is allowed to see will appear here — nothing more, nothing hidden.

Boundary rule: the analysis function accepts this artefact only — analyseRedacted({ redactedText, documentType, entityStats }). Raw text has no path into it.

5 · Deep analysis, safely

CLOUD LANE · redacted input only

Deep reasoning the small on-device model cannot do: what the document commits each side to, clauses that deserve a second look, and every dated obligation. It runs on the redacted text above — verify the payload yourself before sending:

Payload length—
Payload fingerprint (SHA-256)—
Contains raw personal data—

Analysis will appear here after the redacted document is sent.

Privacy ledger

Every inference step, where it ran, and what it carried
TimeStepSourceModeLatencyPayloadFingerprint
No inference yet. The ledger fills as you work — and every on-device row can be cross-checked in your browser's Network tab: no request leaves the machine.
0 requests · 0 on-device · 0 in-cloud Raw document bytes sent to cloud, all session: 0

How Redacta works

One boundary, enforced in code.Not in a policy PDF.

Step 1

Prepare the on-device model

On a user action, Redacta calls initializeDeviceModel() so Chrome downloads or confirms Gemini Nano. Download progress is a first-class state in the interface, never hidden.

Step 2

Scan stays on the device

The document is sent to a model created with ONLY_ON_DEVICE and a JSON schema constraint. It returns structured entities — names, IDs, accounts, addresses, amounts, dates — plus a sensitivity score and a local summary. This step produces zero network traffic.

Step 3

You approve the redaction

Every span is highlighted in place and listed with its type, confidence and sensitivity. Critical and high spans are redacted by default; you can keep or redact any span individually. The redacted document is shown verbatim before anything else happens.

Step 4

Cloud sees redacted text only

The analysis model is constructed from the redacted artefact. Its function signature accepts that artefact and nothing else, so raw personal data has no code path to the cloud. Each response reports its own inferenceSource, which the privacy ledger records next to the payload length and fingerprint.

Scope and honesty notes

Redacta is a redaction assistant, not a legal guarantee: a human reviews every span before a document is shared, and unusual documents can contain data types outside the extraction schema. On-device inference requires Chrome on desktop with Gemini Nano available; on any other browser the scan lane refuses rather than degrading to a cloud upload. This prototype build runs its inference in clearly labelled simulation mode until a Firebase project is configured; the production module (js/hybrid.js) implements the same flow against the real Firebase AI Logic SDK.

Why Redacta

Pasting a document into a chatbotsends the whole thing. Redacta does not.

Pasting into a chatbot

  • The raw document is uploaded in full
  • No review step before it leaves
  • No record of what was actually sent
  • The model sees every name, ID and account
  • One accidental paste is enough

Redacta

  • The scan runs on-device, zero upload
  • You review and approve every span first
  • The ledger records every step and payload
  • The cloud model sees redacted text only
  • The raw-bytes counter stays at 0 until you approve

Questions

Asked before anything is sent.Answered the same way the code behaves.

Does my document leave my device before I approve?

No. The scan runs on-device and produces no network traffic. The only thing that can ever be sent is the redacted artefact, and only after you press the analyse button yourself.

What happens if Gemini Nano is not available?

The scan lane refuses. It is created with ONLY_ON_DEVICE, so a missing model is a visible refusal, never a silent fallback that uploads your document to the cloud instead.

What does SIM mean in the ledger?

SIM marks a simulated inference step. This prototype build runs its inference in clearly labelled simulation mode; every simulated row says SIM in the ledger, and the production module implements the same flow against the real Firebase AI Logic SDK.

Can the cloud model see names I chose to keep?

Yes, and that is your explicit choice: spans you keep stay in the text. The payload audit tells kept spans apart from real leaks, and the payload box shows the fingerprint before anything is sent.

Is redaction a legal guarantee?

No. Redacta is a redaction assistant: a human reviews every span before a document is shared, and unusual documents can contain data types outside the extraction schema.

What does the cloud actually receive?

Exactly the redacted text shown in panel 4, plus the document type and entity counts. The payload box shows its length, its SHA-256 fingerprint, and whether it contains raw personal data, before you send it.

Try it on the sample contract.

Fake data, real flow. Watch the scan, approve the redactions, and check the ledger before anything reaches the cloud.

Open the studio