Edit PDFs in your browser. No uploads. No task limits. No sign-up. Free.
Many PDF tools charge monthly, cap file sizes, or limit what you can do on free plans. PDFZero keeps the core workflow simple: edit locally, keep your files on-device, and use the important tools without a paywall.
🔗 https://pdfzero-editor.vercel.app
Edit, organize, secure, and optimize PDFs directly in your browser - all FREE while keeping your files on your device.
| Feature | Other PDF tools | PDFZero |
|---|---|---|
| Edit existing PDF text | Often paid or limited | Free |
| File size limits | Often capped | No file size limit |
| Daily task limits | Free plans may stop after a few tasks | No task limits |
| File privacy | Files may be uploaded to a server | 100% local |
| Offline use | Usually browser or cloud-based | Works offline |
| Open source | Rare | MIT |
| OCR for scanned PDFs | Often paid | Free |
| e-Sign PDFs | Often paid | Free |
| Cost | Many plans charge monthly | Free |
- Edit existing PDF text - click any text block, edit in-place, and auto-detect the original font
- Add new text boxes anywhere on the page
- Change font family, size, color, bold, and italic
- Add, replace, and remove images
- Merge multiple PDFs with drag-to-reorder
- Split PDF by page range
- Reorder pages via drag-and-drop
- Rotate individual pages
- Extract specific pages
- Compress PDF with browser-native object stream compression
- PDF/A compliance check
- Password protect with AES-256
- Remove existing passwords
- Redact sensitive content permanently
- Add text watermarks
- OCR for scanned and image PDFs with Tesseract.js, running offline
- AI font matching to keep text edits visually consistent
| Library | Purpose |
|---|---|
| pdf-lib | PDF creation, modification, export |
| PDF.js | PDF rendering and text extraction |
| Tesseract.js | OCR for scanned PDFs |
| React | UI framework |
| Zustand | State management |
| Vite | Build tool |
Zero backend. Zero tracking. Zero analytics. 100% browser-native.
git clone https://github.com/bevinkatti/pdfzero.git
cd pdfzero
npm install
npm run dev
npm run buildsrc/
components/
editor/ # PdfCanvas, TextBlock, AnnotationLayer, Toolbars
layout/ # Navbar
ui/ # DropZone, shared components
lib/
pdfRenderer.js # PDF.js wrapper - render pages, extract text
pdfExporter.js # pdf-lib wrapper - export, merge, split, etc.
pages/
Landing.jsx # Marketing landing page
Editor.jsx # Main PDF editor
Tools.jsx # Individual tool UIs
store/
pdfStore.js # Zustand global state
styles/
globals.css # Design system tokens
- Render - PDF.js renders the PDF page onto a
<canvas>at 1.5x scale. - Extract - PDF.js text content API returns every word with its position, font, and size.
- Overlay - Transparent
contenteditabledivs are positioned exactly over each word. - Edit - The user double-clicks and edits text directly.
- Export -
pdf-libwrites the changed text back into the PDF with the closest standard font.
- PDF rendering and text extraction overlay
- Add new text boxes
- Drag-and-drop text positioning
- Annotations (highlight, redact, shapes)
- Merge, split, compress tools
- Watermark, rotate, page management
- v1.1 - OCR via Tesseract.js
- v1.1 - AI font matching (WebGPU)
- v1.1 - Image add/replace/remove
- v1.1 - e-Sign with canvas signature pad
- v1.2 - PDF to Word/DOCX export
- v1.2 - Form filling and flattening
- v1.2 - Batch processing
PRs are very welcome. Please open an issue first for major changes.
npm install
npm run devMIT Copyright PDFZero contributors
If you find PDFZero useful, consider giving a ⭐.

