· via dev.to (home feed)
Zero-backend PDF editor rewrites content streams for genuine redaction in the browser
A dev.to writeup details a static-site PDF editor that rewrites content streams for genuine text edits and redaction, with on-device OCR, so files never leave the browser.

A developer writing on dev.to has published a detailed account of PDF Studio, a PDF editor deployed as nothing more than a static website: an HTML file, JavaScript and CSS, with no server-side API, database, login or analytics behind it. Rendering, editing, form filling, redaction and OCR all run in the visitor's browser, so documents such as tax returns, contracts and medical records never travel to infrastructure the user cannot inspect.
Privacy as an architectural property
According to the dev.to post, the starting observation was that a PDF is a structured document format rather than an opaque blob. Rendering means parsing objects and painting them to a canvas; editing means rewriting those objects and re-serializing the file. Modern browsers handle that computation easily, so the server in conventional PDF tools was a convenience for developers rather than a technical necessity. The author frames the choice as a product decision rather than a cost saving: with no server there is nothing to break into, no records to hand over and no data to sell, so privacy follows from how the system is built rather than from what a policy claims.
How the editor works
Pages render to canvas elements at the device's pixel ratio. There is no text-selection layer; the editor performs its own hit-testing against the content stream to locate text, and zooming re-renders at a higher scale rather than stretching an image, which keeps type sharp.
Text editing is where the tool diverges from many consumer editors, the author argues. Plenty of apps let you type over a PDF and export a file with new text drawn on top of the old, leaving the original content selectable and extractable. PDF Studio instead replaces the old text-showing operators in the page's content stream on export and re-serializes the file without the original data. One limit is stated plainly: replacements in scripts the original font cannot encode fall back to painting over the old text, though the author describes this as rare.
Forms are handled by parsing AcroForm field definitions and overlaying fillable inputs; on export, fields can stay live or be flattened into static page content for recipients who should not be able to change the answers. Redaction applies the same principle: sensitive text is removed from the content stream entirely and the marking is rendered permanently into the page, so the exported file contains no trace of it. The author has written a separate guide on verifying redaction, on the grounds that unverifiable claims are worthless for this purpose.
Scanned documents get OCR through a WebAssembly build of Tesseract running in a Web Worker, so the interface never blocks; language data downloads once and caches locally. All document state lives in memory with a full undo and redo stack, sessions autosave to the browser's own local storage, and one click wipes the saved session from the device.
The hard parts
Memory is the first constraint. A 200-page PDF with embedded fonts can consume serious RAM when every page holds a canvas, so the app caps render resolution and cancels stale render tasks as soon as the user zooms; rendering only the pages near the visible area remains on the roadmap, and the author credits mobile devices with forcing this discipline.
Text-editing fidelity is the second. PDFs position glyphs with explicit coordinates rather than flow layout, so replacing a line means removing the old drawing operations, computing where the replacement belongs in the same coordinate space, and writing new operations that other renderers will interpret identically — a matter of precise coordinates rather than ordinary word processing.
A recent mobile overhaul was, by the author's account, the largest single piece of work: sixteen markup tools needed touch-friendly interactions rather than cursor precision, and dialogs had to fit phone viewports. The lesson drawn is that phones demand a different input model, not a shrunken desktop layout. The service worker that enables offline use also created a testing trap, repeatedly serving stale cached bundles that made fixes look missing; the author recommends building bundle-hash verification into the QA process.
What comes next
The export pipeline currently re-serializes the entire document, which is wasteful when a single word changes in a 500-page report; incremental saves are the next architectural project.
Availability
The app is free and MIT-licensed, hosted under the author's NavigatorsLab project, with source published on GitHub as NavigatorsLab-PDF-Studio. There is no signup, and the author invites reports of any PDF the tool fails to handle.
Why it matters
The post is a working demonstration that a software category long assumed to require servers — document processing on sensitive files — can ship as static assets on today's browsers. The distinction between rewriting a content stream and drawing on top of it is not cosmetic: editors that leave the original data in place export files where supposedly redacted text can still be selected, copied or extracted. For developers, the writeup doubles as an honest checklist of the costs of going client-side, from memory ceilings and font-encoding edge cases to mobile input redesign and service-worker caching pitfalls.
- #web-apps
- #privacy
- #client-side
- #open-source