Software · Personal · 2026

DocFlow

Most free PDF tools want an account, an upload, or both, and most black-box redaction leaves the original text sitting underneath. DocFlow does the job on the machine: annotate, edit text, sign, OCR, merge and export, with nothing leaving the Mac. Redaction is the part that had to be right, so it rebuilds each page and re-opens the result to check that nothing survived.

Dashboard
Dashboard
Editor, dark
Editor, dark
Sign
Sign
The Problem

Most free PDF tools want an account, an upload, or both, and most black-box redaction leaves the original text sitting underneath.

My Role

Design, development and release, end to end.

The Approach

Redaction That Proves Itself

The Outcome

53: Screens designed

Scope, Constraints & Reality

No account, no upload

Documents are processed on the device. The OCR engine, its language data and all fonts ship inside the app, so it works fully offline. The only request it ever makes is one you start: stock image search.

Redaction has to be real

Drawing a black box over text in a PDF often leaves the text underneath, still selectable. For a tool people use on contracts and IDs, that failure is the whole risk.

Text in more than one script

Latin uses the PDF standard fonts. Devanagari, Cyrillic and Greek embed subset Noto fonts, and other scripts need a font you add.

A Mac app, built on web tech

An Electron shell serves the app from a private origin with a strict content security policy, a sandboxed renderer and a minimal preload bridge.

Design Decisions

1

Redaction That Proves Itself

Each redacted page is rebuilt as an image in a brand-new document, so the original text and graphics are not carried over. The output is re-opened and checked for leftover text before success is reported. The trade-off is stated, not hidden: those pages become images, so OCR restores a searchable layer.

2

Every State Designed, Not Just The Happy Path

The Figma file runs to 53 screens: empty, loading, unsaved changes, saving, save error, toast notifications, and a flow per tool for redaction, OCR, signing, annotation and export. Errors and half-finished states get a layout, instead of falling back to a default.

3

Honest About Editing Existing Text

Retouching an existing line covers the original, and the original stays in the file underneath. The app says so at the moment of editing and points to Redact for when the text has to be gone. A reassuring lie there would defeat the purpose of the tool.

Impact

53
Screens designed

Each tool, state and error path was designed in Figma before it was built.

0
Accounts, uploads or analytics

Documents live in local storage. The app has no sign-in and sends nothing anywhere.

2 in 1
One download, both Mac chips

A single universal build runs natively on Apple Silicon and Intel, on macOS 13 Ventura or later.

Screens5
Click to expand · ← → to navigate