Wrasse

Published

A privacy-first QR generator should work offline

If your QR generator can't run without internet, it's not really client-side. Here's why Wrasse is a true PWA you can use on a plane, in a basement office, or behind any spotty café Wi-Fi.

Server-dependence is invisible — until it isn't

When your generator quietly POSTs your URL to a server to render the QR, you don't notice the dependency on a sunny day. You notice it on the train, in a meeting room with no signal, or when their service is having an outage. That hidden dependency also means your URL was sent to someone else's logs, even when you didn't think you were sharing it.

Wrasse runs offline by design

Wrasse is a Progressive Web App. After your first visit, the entire builder — the type switcher, the 13 input encoders, qr-code-styling, the design panel, all 5 export formats — is cached and ships from your device. Hit /create with no internet and you'll find the page already loaded, the form already interactive, and the download buttons already working.

What's actually offline-safe

Static QR generation, design styling, logo embedding, frame composition, and all five export formats (PNG, SVG, PDF, CMYK PDF, EPS) work fully offline. Locale switching works offline because all four message catalogs are bundled. Dark mode toggle works offline. The only thing offline can't do is reach the marketing site you haven't visited yet — once cached, every visited page is offline.

When you'd want internet anyway

Phase 2's dynamic QR codes need a live server to resolve a slug to its target URL — that's the price of editability. Phase 3's AI QR add-on needs Cloudflare Workers AI for SDXL inference. Phase 4's bulk paid path uploads to R2. None of this affects the free static QR experience: the privacy-first path stays offline-capable for the lifetime of the product.

Try it offline

Visit /create on a connected device, then turn airplane mode on. Reload. The page is still there, the inputs still work, and your QR still downloads. Receipts: your URL never traveled, ever.