Hi DEV! I built PDFGeek because I kept hitting the same wall: I'd need to merge two PDFs, end up on some web tool, and find myself about to upload a bank statement to a server I know nothing about. And then it'd tell me the free tier allows three tasks an hour.
It's a Windows desktop app. Nothing is uploaded, which also means none of the limits.
- Merge any number of files, in the order you set
- Split into one file per page, or fixed-size chunks
- Extract or remove pages using print-dialog ranges (
1-3, 5, 9-) - Rotate, reorder, watermark
- Add or remove AES-128 password protection
Why I built it
The online PDF tools are genuinely good at what they do. The problem is the trade: your documents go to someone else's machine, and the free tier is deliberately annoying enough to push you to a subscription. For a job that's just "put these two files together", that's a ridiculous amount of ceremony — and for anything sensitive it's not a trade I want to make at all.
Once it's a local app, the caps stop making sense. There's no reason to limit you to 25 files per merge when the work is happening on your own CPU.
Tech stack
Avalonia UI on .NET 8, PDFsharp for the PDF operations, published as a self-contained win-x64 build so there's no runtime to install.
The thing I'd point at if you're building something similar: every PDF operation lives in a service layer with no UI dependencies at all. That sounds like architecture-astronaut advice until you try to test a page-range parser through a view model. There are 29 smoke checks that run against real PDF files rather than mocks, and they've caught more than they should have — page ranges are a deceptively nasty little parsing problem once you allow open-ended ranges, duplicates and out-of-order input.
One honest caveat: it isn't code-signed, so SmartScreen warns on first run. Certificates cost real money annually and I'd rather not put that behind a free tool. SHA256 checksums go out with every release.
Links
- Homepage: https://techygeekshome.info/pdfgeek/
- Source: https://github.com/techygeekshome/PDFGeek
- Download: https://github.com/techygeekshome/PDFGeek/releases/latest
Happy to answer questions about the Avalonia side, the page-range parser, or the testing setup. Feedback very welcome — especially if you try it on a weird PDF and it falls over.
Top comments (0)