React + TypeScript · 100% Client-Side

PDFBox

A premium, privacy-first PDF editor built with React, TypeScript, and Vite. Designed to look and feel like Figma — manage page layouts, edit frames, draw and annotate, redact content, compress file sizes, and secure your documents. All 100% locally in your browser.

Beyond basic PDF tools

PDFBox is not a PDF converter — it is a full document editor with a layer tree, annotation studio, page cropping, multi-select bulk actions, and a Figma-inspired canvas. Pages act as frames, annotations act as layers.

Figma-style workspace

Collapsible layer tree in the sidebar mirrors how Figma organises frames and children. Multiple imported PDFs become collapsible parent folders. Double-page spread switches between 1P and 2P views dynamically.

Privacy by architecture

All PDF rendering (PDF.js), manipulation (pdf-lib), and OCR (Tesseract.js/WASM) run entirely inside browser memory. No document data is transmitted over the network at any point.

Features

Everything a PDF editor should be.

Figma-Style Layer Tree

Collapsible, draggable, interactive sidebar layer tree. Pages act as frames, annotations act as layers within each page frame.

Double-Page Spread

Switch dynamically between single-page (1P) and side-by-side two-page spread (2P) view without reloading the document.

📁

Collapsible Document Grouping

Import or append multiple PDFs — PDFBox groups them under collapsible parent folders corresponding to the original files.

Draggable Page Cropping

Crop any page using draggable visual bounding boxes or exact percentages, while retaining the original MediaBox dimensions.

Bulk Page Actions

Toggle multi-select mode in the sidebar to delete or export selected pages in a single click across any group.

Annotations Studio

Add text annotations, shapes (rectangle, circle, line, arrow), freehand drawing, highlighters, and image stamps.

🔒

Security & Watermarking

Add custom passwords, set print/copy permissions, and stamp watermarks across all pages in a single operation.

🗑

PDF Compression

Strip metadata and optimize object streams to achieve a target file size (in KB or MB) on-the-fly, without re-encoding images.

🔎

OCR Text Extraction

Perform local optical character recognition on any PDF page using Tesseract.js WASM to extract fully copyable text.

Tech stack

Built on the right primitives.

UI Framework

React

Language

TypeScript

Bundler

Vite

Styling

Tailwind CSS

PDF Render

PDF.js

PDF Write

pdf-lib

OCR

Tesseract.js

Icons

Lucide React

Hosting

Cloudflare

Build roadmap

How PDFBox reached completion.

Core render + write engine

  • Integrated PDF.js for high-fidelity canvas rendering
  • Integrated pdf-lib for in-memory PDF manipulation
  • Established the zero-upload, client-memory architecture

Layer tree + multi-document

  • Built Figma-style collapsible sidebar layer tree
  • Implemented multi-document grouping into parent folders
  • Added 1P / 2P spread toggle and bulk page actions

Editor tools + security

  • Built annotation studio with shapes, freehand, and stamps
  • Added draggable crop boxes with MediaBox preservation
  • Shipped password, permissions, watermark, compression, and OCR