When both sides support it, a verification offers QR codes first: this device shows its code (in a white quiet zone, whatever the theme) and can scan the other's with the camera (mobile_scanner; only codes that start with MATRIX count). The side whose code was scanned confirms the other saw it succeed. Compare emoji stays available, and is used directly when either side has no QR support. Adds the CAMERA permission (camera hardware not required). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clients
| Directory | What | State |
|---|---|---|
ui/ |
shared Vue 3 + Tailwind design system: tokens, fonts, icons, components | in use by admin and web |
admin/ |
admin web panel, served by its own optional warp-admin binary |
done for the current admin API |
web/ |
web client (Vue SPA on matrix-js-sdk), served by its own optional warp-web binary |
rooms, timeline, sending text and files, invites; E2EE next |
desktop/ |
Wails v3 shell reusing the web frontend | next: web has a timeline |
mobile/ |
Flutter app on the famedly Matrix SDK, Android first | sign-in, rooms, timeline, files, E2EE with verification, push |
The frontend packages are a pnpm workspace (pnpm-workspace.yaml at the
repository root); the Go hosts join go.work.
pnpm install
pnpm admin:dev
pnpm web:dev