
Hey Indie Hackers,
I wanted to share a browser-side performance optimization that saved my app's user experience (and kept our server costs at $0).
We’ve been building a feature that allows users to generate and export 300+ branded QR codes (with custom logos in the center) in a single grid PDF document for high-quality physical printing.
Here is the technical challenge I ran into, and exactly how we solved it.
Initially, to keep the PDF generation fast, I generated the QR codes at 300x300px. But because the brand logo in the center only occupies about 15% of the QR area, it shrunk to a tiny 45x45px. When printed, the logos were blurry and pixelated. Unacceptable for high-res brand assets.
So, I bumped the QR resolution to 800x800px. The logos looked crisp, but the generated PDF size ballooned to over 250MB!
It took forever to compile in the browser, and it repeatedly crashed mobile Safari/Chrome due to memory limits during canvas renders.
jsPDF's built-in compression. We converted the canvas outputs into optimized JPEGs with a compression ratio of 0.75. This reduced the size of each QR code drastically while keeping the vector-like look of the black-and-white grids.We officially launched the product — qrbrand.cc — on Product Hunt today.
Instead of just asking for upvotes, we actually want you to stress-test this bulk export feature and give us your raw, honest feedback.
To let you test everything fully (including high-res SVG/PDF exports and detailed analytics), we are giving everyone here 7 days of Pro for free (no credit card required).

How to claim it:
I’d love to know:
Let me know what you think in the comments! 🤘