A modern web application for uploading PDFs, adding fillable fields, and creating completed documents with embedded signatures and data. All data is stored locally in your browser using IndexedDB - no backend required!
- Upload and view PDF documents
- Add signature, initials, text, and date fields
- Create signatures by drawing, typing, or uploading
- Reuse saved signatures across documents
- Fill all fields and download completed PDFs
- All data stored locally in your browser
- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser to the local URL (usually
http://localhost:5173)
That's it! No database setup or environment variables needed.
- Upload a PDF: Drag and drop or click to browse for a PDF file
- Add Fields: Click field type buttons (Signature, Initials, Text, Date) then click on the PDF to place them
- Fill Fields: Switch to Fill mode and click on each field to complete it
- Download: Once all fields are filled, download your completed PDF
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- React Router for navigation
- React PDF for viewing
- pdf-lib for PDF manipulation
- IndexedDB for local storage
src/
├── components/ # React components
├── pages/ # Page components
├── lib/ # Utilities and database logic
└── types/ # TypeScript type definitions
Works in all modern browsers that support:
- IndexedDB
- Canvas API
- FileReader API
Tested on Chrome, Firefox, Safari, and Edge.