Añade de forma aditiva (sin migrar componentes) los tokens de la sección B.1 del plan de refactor: radios (tag/thumb), tamaños de carátula e icono, anchos de contenedor, tracking/leading tipográfico, colores de botón (--color-btn*), recetas @utility de tipografía (text-display-*, text-eyebrow, text-body, text-count), trazo de icono (stroke-thin/regular/bold), superficies/grids (glass-bar, grid-cards*, theme-transition) y el stagger de .animate-enter vía --i. Añade variables de layout (--mf-player-side-w, --mf-menu-w, --mf-submenu-w, --mf-range-*) y z-index semántico en theme.css. Limpia utilidades de color sin uso (--color-accent-dim/glow/hair/line/muted, --color-on-accent) y borra --mf-sidebar-bg (sin importadores) de theme.css y tokens.ts. Scrollbar pasa a tokens con variante de modo claro. Verificado con npm run build (Tailwind compila los @utility con variantes responsive dentro de @apply).
Musify
Music streaming platform: upload your own tracks, process them asynchronously
(audio transcoded to .m4a, thumbnails generated) and stream them without the
bytes ever going through the API.
backend/ .NET 10 — Domain / Application / Infrastructure / Api / Worker / StreamingGateway / Tests
web-player/ SvelteKit 2 + Svelte 5 + Tailwind 4 web client
deploy/ Docker Compose stacks — self-contained, no wrapper scripts
docs/ What each piece does and why (in Spanish)
dotnet test backend/Musify.slnx # backend/Tests/ — Docker running (Testcontainers: Postgres, SeaweedFS)
Run it
Development (Docker Desktop):
docker compose -f deploy/compose.yml -f deploy/compose.dev.yml up -d
Infrastructure plus stream-ticket keys, database migrations and Zitadel OIDC
provisioning — all as one-shot jobs baked into the compose file. Apps run from
the IDE by default; add --profile apps up -d --build as a second command to
run them in Docker instead.
Production, on a server with a domain:
cp deploy/.env.prod.example deploy/.env.prod # fill in the domain and secrets
docker compose --env-file deploy/.env.prod -f deploy/compose.yml -f deploy/compose.prod.yml up -d
docker compose --env-file deploy/.env.prod -f deploy/compose.yml -f deploy/compose.prod.yml --profile apps up -d --build
Idempotent — run the same commands again to deploy an update. See deploy/README.md for the details, the port map and the production prerequisites.
Components
| Service | Port (dev) | Role |
|---|---|---|
Musify.Api |
5111 | REST API, issues presigned upload URLs and stream tickets |
Musify.StreamingGateway |
8081 | YARP proxy that validates the stream ticket and serves the audio |
Musify.Worker |
— | MassTransit consumers: transcoding, thumbnails |
web-player |
5173 / 3000 | Web client (SvelteKit, server-side OIDC session) |
| Zitadel | 8080 | Identity (OIDC/OAuth2) |
| PostgreSQL / RabbitMQ / SeaweedFS / Jaeger | 59000 / 5672 / 8333 / 16686 | Metadata, messaging, object storage, traces |
More in docs/: architecture, authentication, storage, streaming, media processing, development.