Skip to content

Repository files navigation

๐Ÿงจ iHatePDF

Every PDF tool you need โ€” 100% in your browser. Zero uploads. Zero accounts.

Live Demo License: MIT PRs Welcome

React TypeScript Vite Tailwind CSS Framer Motion KaTeX pdf-lib PDF.js

iHatePDF banner

๐Ÿ“Œ Table of Contents

โœจ What's New

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.

๐Ÿš€ Why iHatePDF

๐Ÿ”’ 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.

๐Ÿงฐ Tools

๐Ÿ“„ PDF

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

๐Ÿ–ผ๏ธ Image

Tool Route What it does
Compress Image /compress-image Quality slider, live preview, predicted size

๐Ÿงฎ Documents & Math

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

๐Ÿ“ธ Screenshots

Home โ€” Drag & Drop Hero Tools Grid
Home hero with animated dropzone Tools grid
Compress PDF โ€” Live Preview Sign PDF โ€” Signature Placement
Compress PDF preview Sign PDF
Equation โ†’ Image Watermark PDF/Image
Equation to image Watermark PDF/Image

๐Ÿ›  Tech Stack

React TypeScript Vite Tailwind CSS Radix UI Express Vercel

๐Ÿ“ฆ Full dependency breakdown

UI & Motion

  • tailwindcss + shadcn/ui + @radix-ui/* โ€” accessible, themeable components
  • framer-motion โ€” hero animations, layout transitions, drag interactions
  • lucide-react โ€” icon set

PDF & Imaging

  • pdfjs-dist โ€” page rendering and previews (bundled worker, no CDN)
  • pdf-lib โ€” merge, split, watermark, encrypt, signature placement
  • jspdf + html2canvas / html-to-image โ€” DOM โ†’ PDF/PNG export

Math

  • katex โ€” client-side LaTeX math typesetting for the equation tool

โšก Getting Started

# 1 ยท clone
git clone https://github.com/cu-sanjay/iHatePDF.git
cd iHatePDF

# 2 ยท install
npm install

# 3 ยท run
npm run dev

Then 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.

๐Ÿค Contributing

  1. Fork the repo and create a branch: git checkout -b feat/my-tool
  2. Keep everything client-side โ€” no upload endpoints.
  3. Match the design language: light theme, red #E63228 / white / black, glass surfaces, rounded corners.
  4. Run npm run check before opening a PR.

๐Ÿ“„ License

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 โญ

About

Basic try to copy iLovePDF โ€“ testing features like PDF conversion, merge/split tools, and a resume builder.

Topics

Resources

Stars

32 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages