Open-source PDF tools for private documents.
Merge, split, convert, sign, clean, OCR, compare, and secure PDFs in your browser with no server upload for PDF processing.
Use the app · Privacy model · Toolkit · Run locally · Download · Contribute
Online PDF tools often ask users to upload sensitive documents before doing anything useful. PDF Chef is built around the opposite promise: serve the app, then process the document locally in the browser.
That matters for contracts, invoices, tax forms, school records, IDs, resumes, internal reports, legal drafts, and every other file users should not casually upload to a random conversion server.
| Private by default No PDF file upload for normal tool workflows. |
Open source MIT licensed and inspectable on GitHub. |
Browser local PDF.js, pdf-lib, jsPDF, JSZip, and Tesseract.js run client-side. |
| No account wall Use the public app without signing in. |
Practical toolkit 29 tools covering daily PDF work. |
Static deploy Hosted on Cloudflare Pages, portable to static hosts. |
PDF Chef is not a cloud conversion pipeline. It is a static web app with client-side PDF operations.
| User concern | PDF Chef answer |
|---|---|
| Will my PDF be uploaded? | No PDF file is uploaded to a PDF Chef server for the core tools. |
| Where does processing happen? | In the browser on the user's device. |
| Do I need an account? | No account is required. |
| Can I inspect the code? | Yes. The project is open source under MIT. |
| What network requests exist? | The browser downloads app assets, scripts, styles, and workers from the deployed site. User PDFs are handled locally by the app. |
| Can this be self-hosted? | Yes. Build the Vite app and serve the static output. |
- User-selected PDFs stay on the device during normal PDF tool workflows.
- PDF operations are implemented with browser-side libraries instead of a document-processing backend.
- No required login, workspace, or cloud storage account.
- No third-party document conversion API.
- Security-sensitive reports are handled privately through SECURITY.md.
- New contributions are expected to preserve the no-upload model.
PDF Chef focuses on tools people actually need during day-to-day document work.
| Arrange | Convert and create | Review and secure |
|---|---|---|
| Merge PDFs | Compress PDFs | View PDFs |
| Split PDFs | PDF to JPG, PNG, WebP | Edit PDF overlays |
| Reorder pages | Image to PDF | Compare PDFs |
| Rotate pages | Make PDF from photos | Extract text and OCR |
| Delete pages | Extract embedded images | View and edit metadata |
| Extract selected pages | Remove metadata | |
| Add page numbers | Remove annotations | |
| Add watermarks | Sanitize PDFs | |
| Flatten form fields | Sign PDFs | |
| Crop margins | Protect PDFs | |
| Add headers and footers | Unlock PDFs | |
| Remove blank pages | Repair PDFs |
- Preview-first workflows: compression, signing, watermarking, page numbers, OCR, compare, and conversion flows show visual feedback before export.
- Cleanup tools: remove metadata, annotations, blank pages, and hidden document data.
- Mobile-aware UI: touch-friendly page operations and responsive layouts.
- SEO coverage: each public tool has route-level metadata and sitemap coverage.
- Catalog verification:
npm run test:catalogprevents dashboard, route, SEO, and sitemap drift.
Browser
-> React + TypeScript UI
-> PDF.js for parsing and rendering
-> pdf-lib and jsPDF for document edits and exports
-> Tesseract.js for OCR
-> JSZip for packaged downloads
-> Local download back to the user
Cloudflare Pages
-> Serves static HTML, CSS, JS, images, and workers
-> Does not receive user PDFs for core processing
| Layer | Tools |
|---|---|
| App | React 18, TypeScript, Vite |
| Styling | Tailwind CSS, lucide-react |
| PDF runtime | PDF.js, pdf-lib, jsPDF |
| OCR and assets | Tesseract.js, JSZip |
| Hosting | Cloudflare Pages |
| Verification | TypeScript, catalog verifier, production build |
Prerequisite: Node.js 18 or newer.
npm install
npm run devOpen the local URL printed by Vite.
npm run lint
npm run test:catalog
npm run buildtest:catalog verifies that dashboard tools have matching app routes, SEO metadata, and sitemap entries.
The production app is deployed on Cloudflare Pages:
https://pdfchef.dhananjaytech.app/
Build output lives in dist:
npm run buildPDF Chef releases include a ready-to-serve static ZIP. This is useful when you want to run the app locally or host it yourself without setting up the development toolchain.
- Open the latest release.
- Download
pdfchef-<version>.zip. - Extract the ZIP.
- Serve the extracted folder with any static HTTP server.
Quick start:
# Using Python
cd pdfchef
python -m http.server 8080
# Or using Node.js
npx serve .Then open http://localhost:8080.
Do not open index.html directly from the filesystem. Browser security rules can block module scripts and PDF workers when loaded from file://.
components/ React UI, pages, tools, SEO helpers
services/ Browser-side PDF operations
hooks/ Shared React state and PDF handoff helpers
scripts/ Verification and benchmark utilities
public/ Static assets, robots.txt, sitemap.xml
design-system/ Durable product and UI decisions
- More browser-safe PDF cleanup tools
- Stronger automated tests around PDF operations
- Better large-file performance and progress reporting
- Accessibility audits for every tool route
- Optional self-hosting guide
Contributions are welcome when they strengthen the local-first PDF model.
High-value areas:
- new tools that preserve the no-upload privacy model
- browser-side performance improvements for large PDFs
- accessibility fixes
- focused tests around PDF operations and route coverage
- documentation that makes privacy and local processing easier to verify
Read CONTRIBUTING.md before opening a pull request.
Please do not open public issues for security-sensitive reports. See SECURITY.md.
PDF Chef is open source under the MIT License.