SnapPDF
SnapPDF is a modern React + Vite web app for converting multiple images into a PDF and extracting PDF pages into separate images. Every conversion runs locally in the browser, so files are never uploaded to a server.
Features
- Convert JPG, JPEG, PNG, and WEBP images into a PDF
- Reorder images with drag-and-drop
- Preview image metadata, rotate images, zoom previews, remove items, and clear batches
- Customize PDF paper size, orientation, margins, image fit, and image quality
- Preview and download the generated PDF
- Convert PDF pages into PNG, JPG, or WEBP images
- Choose extraction quality and resolution: 72 DPI, 150 DPI, or 300 DPI
- Download individual extracted images or all images as a ZIP
- Recent conversion history stored in Local Storage
- Light and dark mode with saved preference
- Toast notifications, progress indicators, responsive layouts, and keyboard-friendly controls
Privacy
SnapPDF uses browser APIs, PDF-lib, pdf.js, JSZip, and FileSaver.js for client-side conversion. No files are uploaded, transmitted, or stored on a server.
Tech Stack
- React.js + Vite
- Tailwind CSS
- JavaScript
- PDF-lib
- pdf.js
- JSZip
- FileSaver.js
- Framer Motion
- Lucide React Icons
Getting Started
Install dependencies:
npm install
Run the development server:
npm run dev
Create a production build:
npm run build
Preview the production build:
npm run preview
Project Structure
src/
assets/
components/
pages/
hooks/
utils/
services/
context/
App.jsx
main.jsx
Notes
Recent file repeat downloads are stored in Local Storage only when generated outputs fit within browser storage limits. Large outputs remain downloadable immediately after conversion, but may not be saved for repeat download.

Log in or sign up for Devpost to join the conversation.