Skip to content

JamesmarkeyUK/Universal_PDF

Repository files navigation

Universal PDF

Free and open source PDF viewer + editor. Simple and easy to use.

Open source — self-host free or PRO hosted by UNI SIM.

A clean Progressive Web App for viewing, annotating, and signing PDFs — works on Windows, macOS, iOS, and Android in any modern browser, with no upload to a server. Files stay on your device.

Try the live app →

Features

  • View multi-page PDFs with zoom (50%–300%), pinch-to-zoom on touch, and a thumbnail navigator
  • Annotate with free draw, text, rectangles, ticks, and crosses, in any of six colours
  • Sign by drawing on a pad; signatures are auto-cropped, saved to your device, and re-usable across PDFs
  • Edit placed annotations — drag to move, resize handles on shapes and signatures, double-click text to retype, change colour and size of selected text on the fly
  • Export the annotated PDF; all annotations and signatures are baked into the saved file
  • Recents are remembered locally so you can reopen a PDF with one tap, even offline
  • Installable PWA — add to home screen on phone or install on desktop, works offline after first load

Install on your device

Open the app URL, then:

  • iOS Safari: Share → Add to Home Screen
  • Android Chrome: menu → Install app
  • Desktop Chrome / Edge: install icon in the address bar

How to use

  1. Open a PDF — click Open PDF or drag-and-drop a file anywhere on the page
  2. Pick a tool from the toolbar (Text, Draw, Tick, Cross, Rectangle, or Sign)
  3. Click / tap on the page to place the annotation
  4. Switch to Select to drag, resize, recolour, or delete existing annotations
  5. Save to download the annotated PDF

Signatures: tap Sign → Draw new signature, sign with mouse or finger, save. Pick it from the menu, then tap on the PDF to place. Drag the corners to resize, drag the body to reposition.

Development

Requires Node 22+ and npm.

git clone https://github.com/JamesmarkeyUK/Universal_PDF.git
cd Universal_PDF
npm install
npm run dev

The dev server runs at http://localhost:5173. Build for production with npm run build.

Pushes to main auto-deploy to GitHub Pages via the Actions workflow.

Stack

  • Vite 6 + React 18 + TypeScript — app shell
  • pdfjs-dist — PDF rendering (Mozilla)
  • pdf-lib — PDF export with annotations baked in
  • react-konva — canvas overlay for shapes, text, freehand, and signatures
  • Zustand — state management
  • IndexedDB — recent files (binary bytes)
  • localStorage — saved signatures
  • Tailwind CSS v4 — styling
  • vite-plugin-pwa — service worker + manifest

Contributing

Issues and pull requests welcome. The project is intentionally small and dependency-light; please open an issue before adding a large feature.

License

MIT.

About

Free and open source PDF viewer + editor. Simple and easy to use.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors