
I Built a Free PDF Toolkit in Go + Astro — Here's What I Learned
Every few months I find myself needing to merge two PDFs or pull a few pages out of a big document. I open a search, find a tool, and immediately get hit with "sign up to continue" or "buy premium to process files over 5MB." For a 30-second task. So I built PDFCrush — a free online PDF toolkit that does merge, split, and compress without accounts or upsells. Here is what the process looked like and what I learned along the way. The Stack Backend : Go with the chi router Frontend : Astro with Tailwind CSS Database : SQLite via modernc.org/sqlite PDF processing : pdfcpu (pure Go) Hosting : Hetzner ARM64 VPS, Caddy reverse proxy, Cloudflare No frameworks on the backend. No ORM. No Redis. The entire thing is a single Go binary serving both the API and the static frontend. Why Go? I wanted a single binary I could scp to a cheap ARM64 VPS and run. No runtime, no dependency hell, no node_modules on the server. Go gives me that plus genuinely good concurrency for handling file uploads. The ser
Continue reading on Dev.to Webdev
Opens in a new tab




