Share music streaming links across different services.
- Spotify
- Deezer
This project uses npm workspaces with the standard packages/* layout.
Cloudflare Worker backend service.
UI app written in TypeScript and React (Vite).
Shared functions and types used by frontend and backend.
Install dependencies from the repository root:
npm ciRun the development environment:
npm run devRun checks and builds from the repository root:
npm run lint
npm run test
npm run buildVITE_API_URL: Base URL for the backend Worker API.- Local file:
packages/frontend/.env - Example:
VITE_API_URL=https://musalink.<your-subdomain>.workers.devSPOTIFY_CLIENT_ID: Spotify API client ID.SPOTIFY_CLIENT_SECRET: Spotify API client secret.- Local dev file for Wrangler:
packages/backend/.dev.vars - Example:
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secretFor deployed Workers, set these as Cloudflare Worker secrets (via Wrangler or dashboard).
Deploying from GitHub Actions requires these repository secrets:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
And this repository variable (not secret):
VITE_API_URL
MIT