Getting Started¶
Prerequisites¶
| Tool | Version | Install |
|---|---|---|
| Python | 3.13+ | python.org |
| uv | latest | pip install uv |
| Node.js | ≥ 22 | brew install node |
Installation¶
Clone the repository and install dependencies:
Backend¶
Frontend¶
Configuration¶
Create a .env file in the project root with your SoundCloud credentials:
How to get credentials:
- Register your app at the SoundCloud Developer Portal
- Copy
CLIENT_IDandCLIENT_SECRETfrom your app settings - Add them to the
.envfile
Running the application¶
Start both services:
The backend API is available at http://localhost:8000 and the frontend at http://localhost:3000.
API documentation¶
Once the backend is running, interactive API docs are available at:
- Swagger UI: localhost:8000/docs
- ReDoc: localhost:8000/redoc
CLI¶
Starlib ships a starlib command for common dev tasks.
Installation¶
Install it once as a global uv tool so it's available in every shell:
After restarting your shell, starlib is available globally.
Commands¶
| Command | Description |
|---|---|
starlib screenshot |
Capture all documentation screenshots |
starlib screenshot¶
Fetches fresh track metadata from the iTunes Search API, then runs the Playwright screenshot suite (screenshots.spec.ts) and writes PNGs to docs/assets/images/screenshots/. The track cache is stored in .cache/screenshot-tracks.json.
Make sure the frontend dev server is running (cd frontend && npm run dev) before capturing screenshots, or let Playwright start it automatically via reuseExistingServer.