Changelog

Grouped by release batch. Dates and tool names come from git history.

v0.1 — Initial MVP (2026-10-02)

10 core tools: Merge PDF, Split PDF, Compress PDF, PDF to JPG, Images to PDF, Word to PDF, Organize Pages, Add Watermark, Encrypt PDF, Extract Text.

Also shipped: shared tool page shell, the Web Worker processing pipeline, 10 launch blog posts, and initial SEO setup.

v0.2 — Security / Edit batch (2026-10-02)

+10 tools: Rotate PDF, Crop & Resize, Page Numbers, Headers & Footers, Remove Password, OCR PDF, Flatten PDF, Redact PDF, Invert Colours, Privacy Scanner.

v0.3 — Conversions batch (2026-10-03)

+10 tools: PDF to ZIP, HTML to PDF, Markdown to PDF, CSV to PDF, Excel to PDF, Create PDF, Compare PDFs, Repair PDF, PDF to Word, PDF to EPUB.

v0.4 — Office formats + new infrastructure (2026-10-03)

+12 tools: PowerPoint to PDF, PDF to PowerPoint, PDF to Excel, PDF to HTML, eBook to PDF, Fingerprint PDF, POS Billing, Scan to PDF, P2P Share, Collaborative Whiteboard, Edit PDF Text, PDF to Audio.

New infrastructure: peer-to-peer signaling for P2P Share and Whiteboard (disclosed on the privacy page), a camera-based capture pipeline for Scan to PDF, and a local-storage-backed product list for POS Billing.

v0.5 — Platform hardening (2026-10-03)

Reached 42 tools total. No new tools; this batch focused on making the existing ones trustworthy and fast offline.

  • PWA / offline support — a hand-rolled service worker precaches pages, JS/CSS and fonts, and caches the qpdf/Tesseract WASM and model files in the background. P2P Share and Whiteboard are excluded and show an "unavailable offline" page.
  • Sentry error monitoring — loaded lazily, scrubbed to tool id, error class, a shortened message, stack frames, origin+path, and user-agent. No file content is ever sent.
  • Tiered file-size limits that scale down on low-memory devices, with warnings in the UI.
  • GEO/SEO infrastructure — llms.txt, an explicit AI-crawler allowlist in robots.ts, and Bing/Google site verification.
  • Security audit pass — Privacy Scanner's metadata stripping became byte-level (it now also removes catalog/page-level metadata and file-attachment objects that were silently surviving a copy), plus silent-failure warnings added across several tools, a tightened CSP, and flaky e2e tests fixed.

SDK package — offlinepdf-sdk (2026-10-03 to 2026-10-04)

A subset of the browser-worker engines, extracted into a standalone npm package with only pdf-lib and fflate as dependencies — zero native binaries, zero WASM, runs the same in Node and the browser. Lives in this repo as an npm workspace; the website's own worker engines for every extracted tool import directly from it, so there's one source of truth. Versioned independently of the website (currently 0.x, since the API may still evolve). See the npm package or the usage guide.

  • v0.1.0 — merge, split, rotate, organize pages, watermark, page numbers, flatten: the 7 engines with no WASM/canvas dependency at all, identified by a standalone scoping pass before extraction.
  • v0.1.1 — added a standalone LICENSE file (the 0.1.0 tarball was missing one).
  • v0.2.0 — +3 functions: headers/footers, crop & resize, fingerprint (10 total). Also shipped this guide's companion page at /sdk — a task-to-function decision table plus a full runnable reference, distinct from the package README's bare API listing.
  • v0.3.0 → v0.3.1 — +2 functions: scanPdfMetadata/stripPdfMetadata (split from one engine per a design review, rather than kept as a single function with a strip flag) and csvToPdf (12 total). The byte-level metadata-strip verification — a PDF carrying hidden XMP, an embedded file, and a file-attachment annotation, asserting zero leftover objects in the output — was ported into the package's own test suite, not left only in the website's. 0.3.0 published with a stale README paragraph from an edit that landed after that tarball was already packed; caught by downloading the actual published tarball rather than trusting the version number, then corrected in 0.3.1.

Images to PDF was scoped and deliberately excluded: its JPEG/PNG path is clean pdf-lib, but the website tool also accepts WebP/GIF via browser canvas, and shipping a quietly narrower version under a name that implies full capability was judged worse than not shipping it — same reasoning as Compress and Encrypt.

Roadmap / Planned

SDK: more engines — Privacy Scanner and CSV to PDF were the two clean candidates from the v0.3 scoping pass; Images to PDF was scoped and excluded (above). No further candidates scoped yet.

Extract Text in the SDK — scoped, not built. pdf.js's legacy Node build can extract text with zero DOM/canvas (verified empirically), but installs at roughly 35 MB versus the SDK's current ~190 KB, which conflicts with its lightweight positioning. Would ship as a separate package if it happens, not folded into the core.