Zvessa docs

Designed QR codes

A QR code is a block like any other: what it holds and how it looks are props, so the AI (in the app or over MCP) and a person in HQ make the same thing. Nothing is on by default: a space has QR codes only where someone adds a qr block, turns on qr on web.share, or uses invites.code.

What it holds #

One of:

PropEncodes
valueAny text or full link, up to 600 characters. Wi-Fi: WIFI:T:WPA;S:<name>;P:<password>;;
pageA link that opens that page of the space in Zvessa
link: "space"A link that opens the space itself (/s/<id>)
link: "web" (+ optional page)The space's public web address (Public links kit); hides while the space isn't on the web
link: "invite"The viewer's own invite link (needs /referrals/codes); each person sees their own

Other props: label (words printed under the code, inside the design), title, size (96-360, default 220), actions (Share / Copy link / Print buttons, default on), and the button words share, copy, print.

How it looks: design #

Every setting is optional. A look is a preset of the others; anything set alongside it wins.

LookDotsCornersPaper
classic (default)squaresquaresquare
roundedsoftroundrounded
roundround (joined like pills)roundrounded
dotsdotcirclerounded
circledotcirclea round badge, like Apple's, with a ring of dots

It always scans. Ink is kept dark and paper light with at least 4:1 contrast; when a style or a design asks for something cameras can't read (light ink, dark paper), the colours are made darker or lighter and the AI's tools say so. The circle's decorative dots stay two modules clear of the code. tests/qr.test.ts draws every look, dot, corner, logo and gradient exactly as the app does and reads it back with ZXing.

Sharing, saving, printing #

On phones, Share saves the code as a 1024 px PNG and opens the share sheet, which also offers Save Image (Photos) and Print. On the web, Share shares the PNG file where the browser can, or downloads it; Print prints the code alone, centred, 12 cm wide. Copy link shows for links.

No new native package: drawing is react-native-svg (already in the app), the picture is its toDataURL, and sharing is expo-sharing and expo-file-system. A logo image from another site may be left out of a saved picture (browsers don't load outside pictures into SVG images). If printing straight from the app (no share sheet) is wanted later, that's expo-print, which needs a new EAS build.

Where else #

Tools (AI and MCP) #

Code #