spidey.
EtchQR

QR codes without the signup wall.

Create, style and scan QR codes in your browser. No account, nothing uploaded, and it works offline once installed.

Try it hereRuns in this page, nothing is sent
Palette
Modules

Styled, not stock

Palettes or a two-color gradient, square, rounded or dot modules, a separate accent color for the corners, an optional frame with a caption, a logo in the middle, and your own combinations saved as presets.

EtchQR's Create screen in dark mode: the Design tab with palette and shape options beside a styled QR code and its download buttons.

13 code types

    Export, share, print

    Download as PNG, JPEG, WebP or SVG, copy the image or share it straight from the browser, or print a sheet of labels with a cut guide. Batch a CSV into one ZIP, in whichever of those formats you need.

    EtchQR's scanner showing a decoded UPI payment code: the UPI ID, payee, amount and note, with a Copy UPI ID button.

    Reads more than the code

    UPI and Bharat QR codes show the ID, payee and amount. WiFi, contact and calendar codes work too, with a password copy, a save-contact or an add-to-calendar button instead of raw text.

    • Point the camera
    • Upload a screenshot
    • Paste one
    • Drop it on the page

    Flash, zoom and camera switching are built in, and a phone's back camera can be chosen by hand if it won't open on its own.

    Nothing leaves your device

    Logos, spreadsheets, WiFi passwords and scanned images stay in the browser. There is no server to send them to.

    • No account, ever
    • Installs as an app on phone or desktop
    • Works offline once installed
    • Optional history, kept only on your device
    • Share links pack everything into the URL

    Why this exists

    Most “free” QR generators bury the plain static-code option, push you toward a tracked dynamic link, and ask for an account before you can download anything. Then the marketing email starts. For something as simple as encoding a WiFi password onto a card, that is a lot of friction.

    Static codes, no redirect

    EtchQR does the same job with none of it. Every code is static, so the data lives in the code itself rather than behind a redirect that someone else controls and could switch off later. The whole thing runs client-side, which is also why it still works with no connection once it is installed.

    A scanner without the ads

    The scanner came from the other half of the same annoyance: wanting to read a UPI code and get the actual UPI ID out of it, without installing a separate scanner app full of ads. It tries harder on photos taken at an angle, blurry screenshots and images squashed by chat apps.

    History you control

    History is available for both creating and scanning, and each one has its own switch. Turn it off, keep the last 10, 25, 50 or 100, or delete entries whenever you like. It is completely local: it lives in your browser, nothing is sent to any server, and passwords are never saved.

    Share and print, nothing uploaded

    A shareable design link packs the content and style into the link itself, so opening it rebuilds the code with nothing uploaded to make that happen. Printing a sheet of labels works out how many fit the page and adds a cut guide, all computed in the browser from the size and margin you set.

    Open it and make one.

    Open EtchQR Built as an installable PWA with React and TypeScript. Source is closed for now. Read the terms and privacy policy.

    More projects

    See all