Getting Started
First-time setup, prerequisites, and running the platform locally.
Getting Started
The ./dev CLI Driver
All local orchestration, testing, database migrations, and telemetry dashboards are driven exclusively by the custom ./dev CLI tool located in the repository root. See the CLI Reference to get started!
Prerequisites
| Tool | Version | Purpose |
|---|---|---|
| Docker | Compose v2.20+ | Infrastructure services |
| Go | 1.25+ | wordloop-core |
| Air | latest | Go auto-reload (go install github.com/air-verse/air@latest) |
| uv | latest | wordloop-ml Python env |
| pnpm | latest | wordloop-app dependencies |
| ffmpeg | latest | ML audio processing |
Quick start
This boots infrastructure in Docker and runs Core, ML, and App natively. Code changes auto-restart — no manual intervention needed.
The Hybrid Development Model
Infrastructure runs in Docker (stable, rarely changes). Application services run natively for instant feedback:
| What runs | Where | Auto-reload? |
|---|---|---|
| Postgres, PubSub, Storage, OTel | Docker containers | n/a |
| Core API (Go) | Native via Air | ✅ Rebuilds on .go file change |
| ML API (Python) | Native via uv | ✅ Restarts on .py file change |
| App (Next.js) | Native via pnpm | ✅ HMR in browser |
Typical workflows
Tailing logs
Native service logs are written to .dev/logs/ and can be tailed with the same CLI:
Full stack in Docker
For CI-like environments or full-stack integration testing:
Authentication
Authentication is handled automatically through JIT provisioning:
- Sign in via Clerk (Google, email, or test accounts) in the browser
- The Core API verifies the Clerk JWT
- If the user doesn't exist locally yet, they're auto-created from the Clerk API
- No webhook tunnels, no manual tokens, no database seeding
[!NOTE] System tests use a separate
APP_ENV=testmode with raw UUID tokens. See Testing Strategy for details.
Linting
Checking status
See CLI Reference for the complete target list.