
Convert PNG to PDF
Privacy-first client-side image converter with batch ZIP export.
Tool DraftUtility ToolAvailableRp 17.000BeginnerUpdated 2026-07-09Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4, pdf-lib, JSZip
Description
Single-page, 100% client-side file converter. Four image tools work today — JPG to PNG, PNG to JPG, image to PDF, and image compression — with three document tools (PDF/Word/Markdown) scaffolded in the UI but disabled since they'd need a server. Files never leave the browser; conversions run entirely in Canvas, pdf-lib, and JSZip.
What Already Works
JPG to PNG and PNG to JPG conversion
JPG/PNG to PDF conversion
Image compression (JPG/PNG/WebP)
Drag-and-drop or click-to-browse upload with per-file validation
Batch queue (up to 20 files, 25 MB each)
Per-file status tracking with clear error messages
ZIP export of all converted outputs
What's Included
- Full source code
- README and setup guide
- License
- AI-ready docs (PRD, technical spec, deployment notes)
- Vitest unit tests and Playwright end-to-end tests
How to Run
- Unzip the source and run npm install.
- Copy .env.example to .env.local if you want to set a custom app URL (optional).
- Run npm run dev and open http://localhost:3000 — no database or auth setup needed.
- Build for production with npm run build and deploy to Vercel or another Node.js host.
Continuation Notes
- 100% client-side — no secrets, no database, no server state. Runs on Vercel out of the box.
Known Limitations
- PDF-to-Word, Word-to-PDF, and PDF-to-Markdown are shown in the UI but disabled — they need a server-side engine that isn't included
- Files over 25 MB are rejected, and batches are capped at 20 files
- No HEIC, TIFF, or SVG input support
- No per-file percentage progress — just ready / converting / done / failed status
- Still needs human or developer review before shipping
Related Drafts

Tool DraftUtility ToolAvailable
Design Wearpack
Public workwear design studio with live pricing and an approval flow.
Next.js 16 (App Router)React 19TypeScriptPrisma 7 + PostgreSQLnext-intl (en/id)+1

Tool DraftUtility ToolAvailable
Embroidery | Convert SVG/PNG to DST file
SVG/PNG-to-DST/PES/JEF embroidery digitizer with a live stitch preview.
Next.js 16 (App Router)React 19TypeScriptPrisma 7 + PostgreSQLnext-intl (en/id)+2

Tool DraftUtility ToolAvailable
Social Media Downloader
Single-page YouTube downloader with real server-side extraction via yt-dlp — video, audio, and ZIP bundles.
Next.js 14 (App Router)React 18TypeScriptTailwind CSS 3Framer Motion+4