TL;DR

Day 8 of building SwapFile.io (privacy-first image/PDF converter) in public. Yesterday I shipped a feature I needed myself: PDF Merge. Total time: ~7 hours from "do we have this?" to production. Stack: Go + Fiber + PostgreSQL + Next.js 16. The interesting bits are about what I didn't have to write.

Live: swapfile.io/en/tools/pdf-merge

The problem

Most online PDF mergers do something I didn't realize until I tested four of them: they rasterize your PDFs.