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
- Open this site, then open your browser's developer tools and switch to the Network tab.
- Type a WiFi password or a phone number into the generator and download a file.
- 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.
- 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.