Your AI music production suite — library, studio, lyrics, and sound analysis.
- pnpm workspaces, Node.js 24, TypeScript 5.9
- API: Express 5 + PostgreSQL (Drizzle ORM)
- Frontend: React + Vite + Tailwind + shadcn/ui
- Auth: Google OAuth 2.0 (PKCE)
- AI: Anthropic Claude (Sonnet for studio, Opus for sound analysis)
pnpm install
pnpm --filter @workspace/api-server run dev # API on port 5000
# Frontend: configure via PORT + BASE_PATH env vars| Variable | Description |
|---|---|
DATABASE_URL |
Postgres connection string |
GOOGLE_CLIENT_ID |
Google OAuth 2.0 Client ID |
APP_ORIGIN |
Your deployed URL (e.g. https://cynlabs.up.railway.app) |
AI_INTEGRATIONS_ANTHROPIC_API_KEY |
Anthropic API key |
AI_INTEGRATIONS_ANTHROPIC_BASE_URL |
Anthropic API base URL |
DEEPSEEK_API_KEY |
DeepSeek API key for the notebook assistant |
NOTEBOOK_AI_PROVIDER |
Optional notebook provider override; set gemini to force Gemini, otherwise DeepSeek is preferred when configured |
DEEPSEEK_NOTEBOOK_MODEL |
Optional DeepSeek model override; defaults to deepseek-v4-flash |
GEMINI_API_KEY |
Optional Gemini API key for the notebook assistant |
- Google Cloud Console → APIs & Services → Credentials → Create OAuth 2.0 Client ID
- Add
$APP_ORIGIN/api/callbackto Authorized Redirect URIs - Set
GOOGLE_CLIENT_IDin your environment (no client secret needed — uses PKCE)