MIT licence · Verify it yourself

The whole thing is public, engine included.

"Nothing leaves your browser" is only worth something if you can check. The site and the @stoneqr/engine package are on GitHub under the MIT licence.

How to verify nothing is uploaded

  1. Open this site, then open your browser's developer tools and switch to the Network tab.
  2. Type a WiFi password or a phone number into the generator and download a file.
  3. Watch the Network tab: the requests are the page's own scripts, styles, and fonts, all loaded before you typed anything, plus the Cloudflare Web Analytics beacon, which counts page views without cookies and carries no content. No request carries what you typed.
  4. For a stronger check, load the page, disconnect from the internet, and keep generating. Everything still works.

What is in the repository

  • packages/engine: encoding, payload formats, sizing math, decode verification, and the SVG, PDF, EPS, and PNG exporters. Pure TypeScript with tests; no DOM required.
  • apps/site: this SvelteKit site, prerendered to static files and served from a CDN. There is no server code.
  • docs: the technical research and the real-phone scan matrix.

Libraries

Encoding uses uqr, a port of Nayuki's reference QR encoder. Verification decodes every export with @paulmillr/qr. Styled shapes and logos use @liquid-js/qr-code-styling, loaded only when you open the Style or Logo tab. PDFs are built with pdf-lib. EPS and PNG resolution metadata are hand-written.

Who made this, and what is the catch

StoneQR is made by Garrett Holmes, an executive assistant who prints a lot of QR codes and got tired of the ones that stopped working when a free trial lapsed. There is no catch. The site is static files on a CDN, which costs nothing to run, so it needs no account, no subscription, and no plan to add either. The same person makes SignUpCity, a separate product for event pages; StoneQR does not depend on it. Questions, a scan that failed, or a printer that disagrees with the size calculator: hello@stoneqr.app, or open an issue on GitHub.

Use the engine in your own project

The engine is a small, dependency-light package you can use in Node, Workers, or the browser. It returns the raw module matrix along with the function-pattern mask, which is what you need for custom renderers.

View the source on GitHub Privacy in two paragraphs