Note
v3.0
|
🪄 Drag & Drop Hero Drop files once on the home page and they follow you everywhere. No re-uploading between tools. |
🗂️ File Vault A shared in-memory vault carries your PDFs and images across every tool page automatically. |
|
🖼️ Real PDF Previews Page thumbnails render everywhere, with a graceful PDF-icon fallback if a file can't be parsed. |
🧮 Equation → Image Type LaTeX, get a pixel-tight cropped PNG for papers, reports and slides. Fraction rules now align perfectly. |
|
✍️ Sign PDF Draw a signature on a signpad, then place, drag and resize it anywhere on the page. |
📉 Smarter Compression Live preview per quality level, predicted output size, and target-size mode for PDFs and images. |
Important
Your files never leave your device. All parsing, rendering and export happens in the browser, there is no upload endpoint at all.
| 🔒 Private by design | Files are processed locally; nothing is uploaded, logged or stored. |
| 🆓 Free forever | No paywalls, no premium tier, no watermarks on your output. |
| 👤 No account | Open the site and start working. That's it. |
| ⚡ Instant | No queues, no round-trips — conversion speed is your CPU's speed. |
| 📱 Works anywhere | Responsive, touch-friendly layouts from phones to ultrawide screens. |
| Tool | Route | What it does |
|---|---|---|
| Merge PDFs | /merge-pdfs |
Combine multiple PDFs, reorder pages before export |
| Split PDF | /split-pdf |
Extract page ranges or burst into separate files |
| Compress PDF | /compress-pdf |
Quality presets with live preview + target file size |
| PDF → Image | /pdf-to-image |
Export pages as JPG, PNG or WebP at chosen DPI |
| Image → PDF | /image-to-pdf |
Merge images into one document with page sizing |
| Watermark PDF | /watermark-pdf |
Text watermarks with opacity, rotation and position |
| Lock PDF | /lock-pdf |
Password-protect a document |
| Sign PDF | /sign-pdf |
Draw a signature and place / resize it on any page |
| Tool | Route | What it does |
|---|---|---|
| Compress Image | /compress-image |
Quality slider, live preview, predicted size |
| Tool | Route | What it does |
|---|---|---|
| Equation → Image | /equation-to-image |
LaTeX math rendered to a cropped, transparent PNG |
| LaTeX Resume | /latex-resume |
Write LaTeX-style resumes and export to PDF |
| Resume Builder | /resume-builder |
Form-driven resume templates, no LaTeX needed |
| Home — Drag & Drop Hero | Tools Grid |
|---|---|
![]() |
![]() |
| Compress PDF — Live Preview | Sign PDF — Signature Placement |
|---|---|
![]() |
![]() |
| Equation → Image | Watermark PDF/Image |
|---|---|
![]() |
![]() |
📦 Full dependency breakdown
UI & Motion
tailwindcss+shadcn/ui+@radix-ui/*— accessible, themeable componentsframer-motion— hero animations, layout transitions, drag interactionslucide-react— icon set
PDF & Imaging
pdfjs-dist— page rendering and previews (bundled worker, no CDN)pdf-lib— merge, split, watermark, encrypt, signature placementjspdf+html2canvas/html-to-image— DOM → PDF/PNG export
Math
katex— client-side LaTeX math typesetting for the equation tool
# 1 · clone
git clone https://github.com/cu-sanjay/iHatePDF.git
cd iHatePDF
# 2 · install
npm install
# 3 · run
npm run devThen open http://localhost:5000.
| Script | Purpose |
|---|---|
npm run dev |
Start the dev server with HMR |
npm run build |
Production build (client + server bundle) |
npm start |
Serve the production build |
npm run check |
TypeScript typecheck |
Warning
Large PDFs are processed entirely in memory. On low-RAM devices, very large files (100 MB+) may be slow or fail — split them first.
- Fork the repo and create a branch:
git checkout -b feat/my-tool - Keep everything client-side — no upload endpoints.
- Match the design language: light theme, red
#E63228/ white / black, glass surfaces, rounded corners. - Run
npm run checkbefore opening a PR.
Released under the MIT License — see LICENSE. Use it, fork it, ship it.
Built with ❤️ by Sannjay · If this saved you a subscription, leave a ⭐






