A QR generator that doesn’t want anything from you.
kemek/qr is a free utility from KeMeK Network. It runs entirely in your browser — no upload, no account, no expiry, no tracking. This page explains exactly what that means and where the limits are.
What kemek/qr is
A static-page web app for generating QR codes. You pick a content type (URL, plain text, WiFi credentials, vCard contact, mailto:, SMS, tel:, geo:), tune the styling, and download a print-ready PNG, SVG, or PDF. The generator and every export run in your browser — there is no backend involved at any step.
"Static" here means the QR encodes its destination directly. There is no shortener, no redirect server, nothing tracking the scan. A static URL QR works for as long as the URL itself works; a static WiFi QR works as long as the network credentials match. None of these can be edited after the fact — to change the destination you regenerate the QR.
The generator is a single SvelteKit app, prerendered to static HTML and bundled JavaScript. Cloudflare Pages serves the artifact; Cloudflare touches no request payloads beyond standard CDN logging.
What we don’t do
No client-side analytics, no tracking scripts. No Google Analytics, no Plausible, no Umami — anything that injects a script tag and pings a server while you generate. We see what our host sees — aggregate pageview counts, no individual tracking, no cookies, no third-party scripts.
No third-party assets. Fonts (Fraunces and JetBrains Mono) are bundled locally via npm packages, not loaded from Google Fonts. There is no CDN-hosted JavaScript, no embed scripts, no tracking pixels.
No signup, no account, no email gate. Every feature is free at the same point: open the page, generate the code, download. Permalinks (the COPY LINK button on each generator) encode every setting into the URL hash so you can share or bookmark a configured QR without an account.
No dynamic QRs, no scan analytics. Editable destinations and per-scan analytics require a server-side redirect, which would mean accounts, hosted endpoints, and tracking by construction. That is a different product. If you need it, choose a SaaS QR provider — there are many.
How your data flows
Anything you type into a form (URL, WiFi password, contact name, etc.) stays in the browser tab. It is not sent over the wire. The QR image is rendered locally by a JavaScript library (qr-code-styling) and the file you download comes out of the same tab.
If you upload a logo to embed in the QR, the file is read with the
browser’s built-in FileReader, kept in memory, and
composited into the output. It is never uploaded anywhere.
Your last inputs persist between sessions via localStorage on the same device — also local, also
under your control. Clearing site data clears the saved session.
Loading a permalink (a URL with a #s=… hash) overrides
the saved session for that visit.
License & source
The kemek/qr source is on GitHub under the MIT license. Read the code, fork it, run your own copy if you’d prefer. The privacy claims on this page reduce to "we ship no telemetry code"; the source is the proof.
kemek/qr is part of the KeMeK Network family of utilities. KeMeK Network builds privacy-first, local-first tools and full-stack apps — each one drawn to spec, opinionated in design, and built for the common good.