Own Product
PDFThor — Client-Side PDF Editor
Fully client-side PDF editor built as an embeddable library — documents never leave the browser. PKI digital signatures (PAdES), AES-256 encryption, and an AI document chat, shipped as framework-agnostic web components.

The Challenge
Legal and finance teams work on contracts every day, and uploading them to a hosted editor puts confidential documents on someone else’s server. The operations that matter for those documents are the ones that are hardest to get out of a data centre: PAdES signatures, AES-256 encryption, and redaction that actually removes the text instead of painting a black rectangle over it. Vendors such as Apryse solve this behind per-seat licences and server round trips. What was missing was an editor that runs entirely in the browser and can still be embedded into an existing product.

The Approach
PDFThor is split in two packages. @pdfthor/core holds every PDF operation as a pure function from bytes to bytes and is not allowed to touch a browser API; @pdfthor/ui ships the interface as Web Components, so it drops into React, Angular or plain HTML alike. Rendering runs on pdf.js, writing on pdf-lib. The cryptography runs in the browser as well: PKCS#12 certificates are parsed, CMS structures are assembled for PAdES B-B and B-T including an RFC 3161 timestamp, and AES-256 encryption is written with individual permission flags. Redaction rewrites the content stream, and the AI panel answers questions about the open document with the user’s own API key.
A document that never leaves the browser cannot leak on the way.
Impact & Results
The core carries 32 operation modules today: signatures, encryption, redaction, forms with XFDF import and export, page operations, watermarks, bookmarks, search and text markup. Behind them stand 2,839 unit tests and 952 end-to-end tests that run on Chromium, Firefox and WebKit. The demo ships an eight-page sample contract with form and signature fields, and every screenshot on this page comes from a scripted run against that document, so the images stay in step with the product. PDFThor is still in development and has no production users; the audit against Apryse records what is still open.

My Role
Solo developer and architect. Responsible for the package split and the rules that keep it clean, all PDF operations in the core, the crypto path for signatures and encryption, the Web Component layer with its controller pattern, the demo application, the unit and end-to-end test setup, and the screenshot pipeline behind the images on this page.





Got a similar challenge?
Tell me about your challenge. I'll share how I'd approach it — and a realistic timeline.