Settings

New

Settings

Workspace defaults for new designs and exports.

Workspace defaults

About this build

QR generation library
qrcode-generator 1.4.4 (Kazuhiko Arase, MIT) builds the real module matrix in the browser. The designer draws the dots, corner patterns, frame, text and logo around it as SVG. jsQR 1.4.0 decodes the rendered design as a live scan check.
Framework and language
TypeScript on Bun, server-rendered views with HTMX for list actions, Tailwind for styling, vanilla JavaScript for the designer.
Where data is stored
In a SQLite database on the app server: tables templates, qr_codes and settings. Every row carries workspace_id = 1, so adding accounts or tenants later means filtering by that column.
How template JSON is stored
Each template is one row whose config column holds the full design as JSON (version, QR style, frame, text, logo, background, element positions, dimensions). The thumbnail is a stored SVG, with created and updated timestamps. The designer fetches it by id and restores every control. QR content is never part of it.
Source code and independent hosting
It is a plain Bun project with no framework lock-in: the QR logic is one browser script, and the server uses only bun:sqlite. It can run anywhere Bun runs. The scaffold's shared helpers live in src/lib. The exact download-source option depends on your Studio plan, so check the project menu in Studio.