Launched this week

VersaPDF Studio
Local-first visual PDF editor & organizer in your browser
2 followers
Local-first visual PDF editor & organizer in your browser
2 followers
Desktop-grade PDF editing directly in your browser with zero cloud uploads. Keep sensitive files 100% private and offline—merge, reorder, crop, annotate, sign, redact, watermark, fill forms, and lock/unlock PDFs with no sign-up or limits.





Free
Launch Team / Built With

LoomHit record, hand off to AI
Promoted
Hey Product Hunt! 👋 I’m Elias, maker of VersaPDF Studio.
Why I built this
Working with sensitive PDFs (contracts, tax filings, medical or HR docs) usually forces an annoying choice: install heavy, expensive desktop software, or upload private files to random "free" cloud converters with opaque retention policies.
I wanted a visual, desktop-grade PDF workspace that runs 100% locally inside your browser—no server uploads, no account wall, and no file-size or daily limits.
What you can do in VersaPDF Studio
- Organize & Merge: Drop in single or multiple PDFs to reorder, rotate, split, or crop pages on one continuous canvas.
- Edit & Annotate: Add text, highlights, freehand drawings, shapes, watermarks, and page numbers.
- Prepare Sensitive Docs: Fill PDF forms, add signatures/stamps, apply permanent blackout redactions, or lock/unlock PDFs with passwords.
- Local Auto-Save: Drafts are saved locally in your browser (IndexedDB), so you don’t lose progress if a tab closes—and it keeps working offline.
Tech under the hood
Built with React, TypeScript, Web Workers, PDF.js, and pdf-lib—everything renders and compiles strictly in your browser sandbox. You can even open DevTools → Network tab while editing to verify zero file bytes ever leave your device.
Feedback I’d love most
1. Which PDF editing or batch workflow still feels missing or clunky for your daily work?
2. Did you run into any rendering quirks with complex PDFs, scanned files, or forms?
3. How does the canvas/sidebar layout feel on your screen size?
Thanks for checking it out—happy to answer any questions in the comments!