Skip to content
wuzgood98Public

About

A lightweight web PDF editor

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

236 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paperoo

A lightweight web PDF editor. Open, edit, export, and print PDFs in the browser — files never leave your machine.

paperoo-walkthrough.mp4

Video not playing? Watch the walkthrough.

Features

  • Open a PDF with the file picker, drag-and-drop, or the bundled sample (⌘O / Ctrl+O)
  • Overlay tools: select, text, image, draw, signature, highlight, and shapes (rectangle, line, circle)
  • Edit existing page content: text runs, images, vectors, annotations (links, markup, free text, notes, stamps), and AcroForm fields
  • OCR scanned pages with Tesseract.js; search native text, overlay text, and OCR words
  • Reorder, rotate, and delete pages from the thumbnail sidebar (the last page cannot be deleted)
  • Zoom 10%–800%, fit page, fit width, undo/redo, export, and print the edited PDF

Getting started

Requires Node.js ^20.19.0 || ^22.13.0 || >=24 and pnpm.

pnpm install
pnpm dev

pnpm install copies pdf.js assets and Tesseract/OCR files into public/ (scripts/copy-pdfjs-assets.mjs, scripts/copy-ocr-assets.mjs).

Scripts

Command Description
pnpm dev Start the Next.js dev server
pnpm build Production build
pnpm start Serve the production build
pnpm test Run Vitest
pnpm typecheck TypeScript (tsc --noEmit)
pnpm check Ultracite lint/format check
pnpm fix Ultracite auto-fix
pnpm lint ESLint
pnpm format Prettier on TypeScript files

Shortcuts

Action Keys
Open ⌘O / Ctrl+O
Undo ⌘Z / Ctrl+Z
Redo ⇧⌘Z / Ctrl+Shift+Z or ⌘Y / Ctrl+Y
Print ⌘P / Ctrl+P
Zoom in / out ⌘= / ⌘- (Ctrl on Windows/Linux)
Delete selection Delete or Backspace
Nudge selection Arrow keys (Shift for 10px)
Previous / next page Page Up / Page Down
Leave tool / deselect Esc
Tools V select, T text, I image, D draw, S signature, H highlight, R shapes
Toggle light / dark theme M

Limits

  • Maximum file size: 80 MB
  • Maximum page count: 200
  • Encrypted PDFs cannot be opened or exported
  • Needs Chrome or Edge 140+, Firefox 133+, or Safari 18.2+. Older browsers see an "Update your browser" message

Stack

Next.js 16, React 19, pdf.js for rendering, pdf-lib for export, Tesseract.js for OCR, Tailwind CSS 4.

Page views are counted with Vercel Web Analytics, which uses no cookies. It records which page was visited, never your files or their contents.

Layout

app/                  App Router entry
components/editor/    Editor UI
lib/editor/           Editor state and types
lib/pdf/              Load, extract, export, print
lib/ocr/              OCR session and search
test/                 Vitest suites

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for how to set up the project, name branches, and write commits.

Security

Please don't report security issues in public issues or pull requests. Email them privately to security@paperoo.app. See SECURITY.md for what to include.

License

Paperoo is licensed under the GNU Affero General Public License v3.0. You can use, change, and share it. If you run a changed version for other people, including as a website, you must share your source code under the same license.

About

A lightweight web PDF editor

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages