Casual PDF · v1 in progress

One PDF engine. Every surface.

A high-fidelity PDF viewer and editor — one PDFium engine across web and desktop, identical rendering everywhere. Annotate, fill forms, edit text in place, e-sign, redact, and organise pages. No SaaS. Apache-2.0.

what it does

A full Tier-1 PDF editor,
built on one engine.

/features

High-fidelity rendering

PDFium — the same engine powering Chrome's PDF viewer — runs as WASM in the browser and native on desktop. Identical pixel output on both surfaces (render-parity CI gate: diff <0.22%).

Annotation suite

Highlight, ink, free-text, note, rectangle, ellipse, arrow. Undo/redo. Multi-select with rubber-band marquee. Annotations bake into the PDF on download via the EmbedPDF export plugin.

In-place text editing

Edit existing PDF text directly — click a run, type, commit. PDFium's text-object API (FPDFText_SetText) edits content in-place without rasterising. Fail-closed for subsetted fonts: falls back to standard Helvetica/Times/Courier and shows a banner.

E-signing + PKCS#7

Two signing modes: a visible signature stamp (draw or type, placed as an annotation) and a certified PKCS#7 cryptographic signature via @signpdf/signpdf — incremental update preserves original bytes. Browser-minted self-signed or your own .p12/.pfx.

True byte-level redaction

Drag to mark regions. Apply rasterises each page at 2×, paints opaque black boxes, then rebuilds with pdf-lib — preserving MediaBox origin, CropBox, and rotation. Content removed by construction: not in the output bytes. Immune to de-redaction attacks (arXiv:2206.02285).

Page operations + furniture

Drag to reorder or delete pages (Organize Pages). Watermark, header/footer (with {page} / {pages} / {date}), and Bates numbering — all stamped via pdf-lib as incremental updates.

tech stack

One engine, three surfaces.

/architecture
Engine
  • PDFium-WASM via EmbedPDF (MIT) — web + desktop webview
  • pdfium-render (Apache/MIT) — native Rust, CI render-parity
  • One Rust crate (casual-pdf-core) → wasm32 + native
Write side
  • pdf-lib — redaction, page furniture, image stamps
  • @signpdf/signpdf + node-forge — PKCS#7 (BSD-3)
  • Incremental update: original bytes preserved, signatures valid
UI + collab
  • React 18 + Vite + TypeScript + @schnsrw/design-system
  • EmbedPDF plugins — annotation, history, export, form, signature
  • Yjs overlay (deferred) — collab deprioritised; solo w/ autosave today
honest scope

What Tier 1 means — and what it doesn't.

Tier 1 — ships in v1
  • Annotate (highlight, ink, shapes, notes)
  • Fill interactive AcroForm fields
  • In-place text editing (non-subsetted fonts; fallback for subset)
  • E-sign: visible stamp + certified PKCS#7
  • True byte-level redaction (rasterise + flatten)
  • Organise pages (reorder, delete)
  • Watermark · header/footer · Bates numbering
  • Search, selection, thumbnails, outline, fullscreen
  • Crash recovery + autosave (IndexedDB)
Tier 2 — later
  • Full paragraph reflow when edited text changes width
  • New page creation, complex layout editing
  • Real-time co-editing via services/collab
  • Public share links + granular viewer/commenter/signer rights

PDF is not a reflowable format — full reflow is Adobe's moat. Tier 1 in-place editing is already more than most non-Adobe tools ship.

Try it

PDF editing that doesn't
phone home.

Open a PDF, edit it, sign it, redact it — everything runs in your browser. No account, no upload, no SaaS. Apache-2.0.