This template should help get you started developing with Vue 3 in Vite.
VSCode + Volar (and disable Vetur).
TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI with vue-tsc
for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue
types.
See Vite Configuration Reference.
npm install
npm run dev
npm run build
Scoreboards use a symmetric AES-GCM secret for encrypting join requests, board metadata (PRE lik::brd::), and CRDT snapshots.
- Secret derivation: sha512Hex(
${ownerPrivHex}::${boardId}
), stored only locally in IndexedDB with the scoreboard object. It is never published to Nostr. - Invite/share code format:
lik::<scoreboard_id>::<secret>
(shown in the Invite drawer and QR). Share this code with participants. - Join flow: the app expects the code above; join requests are encrypted with the secret and ignored by the owner if decryption fails.
- Recovery: CRDT PRE bodies are encrypted; recovery decrypts with the provided secret.
- Board metadata PRE (
lik::brd::<id>
) is also encrypted with the same secret; only the d-tag reveals the board id.