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 only requests are the page's own scripts, styles, and fonts, all loaded before you typed anything. No request carries your content.
  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 panel. PDFs are built with pdf-lib. EPS and PNG resolution metadata are hand-written.

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