Files
Musify/web-player
Admin fbb102ffbd Consolidate auth routes under /auth and rename /u to /user
Moves the login screen from /login to /auth, logout from /logout to
/auth/logout (alongside the existing /auth/login and /auth/callback
endpoints), and the public profile route from /u/[id] to /user/[id].

AUTH_REDIRECT_URI and AUTH_POST_LOGOUT_URI already point at
/auth/callback and / respectively, so no Zitadel config change is
needed for the auth move.
2026-09-22 14:20:46 +02:00
..
2026-09-09 23:18:42 +02:00

web-player

Musify's web client: SvelteKit 2 (adapter-node), Svelte 5 runes, Tailwind 4, TypeScript. Authentication is server-side OIDC against Zitadel (openid-client and jose) with an encrypted session cookie; the backend is called from load functions and form actions through a typed openapi-fetch client.

Development

npm install
npm run dev      # :5173

Configuration lives in .env (template in .env.example). Bring the infrastructure stack up first (see ../deploy/README.md) and copy the WEB_CLIENT_ID / WEB_CLIENT_SECRET it writes to deploy/.env into this .env once, then run the dev server.

npm run check    # svelte-check — must be clean before closing a change
npm run lint     # prettier --check . && eslint .
npm run format   # prettier --write .
npm run build    # production build into build/
npm run gen:api  # regenerate src/lib/api/schema.d.ts from the running API

Production

Built and run as a container by the production stack — see ../deploy/README.md. There the same variables come from deploy/.env.prod through compose instead of from .env.

Conventions and the design system are documented in CLAUDE.md and in the musify-web skill.