User-facing Nuxt 4 / Vue 3 client for Kergit chat, presence, browser auth, and LiveKit voice/media controls.
This is an advanced prototype, not a production-ready client.
- Protobuf messages are exchanged with the C++ backend over WebSocket.
- Same-origin Nuxt server routes handle Supabase-backed browser sessions.
- LiveKit handles media after the backend authorizes a voice join and issues a token.
The full root stack exposes the client through Caddy at the root WEB_DOMAIN.
Configure the repo-root .env. Required values are:
NUXT_PUBLIC_SUPABASE_URLNUXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYfor attachment and server-side admin operations
The repo-root .env is the only configuration source for monorepo development.
From the repo root:
./clients/web/docker/run-app.sh --detachedFor direct development from clients/web/, configure the repo-root .env, then run:
pnpm install
./run_nuxt_dev.shrun_nuxt_dev.sh generates the protobuf client before starting Nuxt. For
manual generation, run:
./docker/generate-proto.shGenerated files live in src/generated/proto/ and are intentionally gitignored.
pnpm install
./docker/generate-proto.sh
pnpm test
pnpm build- Voice/video, screen sharing, and reconnect edge cases still need broader validation.
- Direct development still requires the repo-root protobuf sources.
- The client depends on configured Supabase, backend WebSocket, and LiveKit services for complete flows.