Appearance
Getting started
Three ways in, from lightest to most complete. All three end on the same app at http://localhost:8080 (or labs.localhost for the third).
SQLite dev — no Docker
bash
make setup # answers a few questions, writes .env
make front # build the Vue app once (embedded by the Go server)
make dev # DB auto-created and migratedmake setup asks the handful of questions that matter — product name, tenancy mode, what you sell — and leaves the other ~45 variables at their documented defaults. .env.example stays the exhaustive reference.
For frontend work with hot reload, run both:
bash
make dev # Go API on :8080
cd web && npm run dev # Vite on :5173, proxies /api to :8080Docker with PostgreSQL
bash
docker compose upBuilds the image, starts PostgreSQL and Mailpit, migrates, serves. One command, ready to use.
The labs — everything, locally
bash
docker compose -f deploy/labs/docker-compose.yml up -d --buildThe full experience: the app plus single sign-on, S3 uploads, a Stripe API double and a mail inbox, with nothing to configure. It deserves its own page: the labs.
Requirements
- Go ≥ 1.26, Node ≥ 22 (development); Docker (optional)
- Code generation and linting:
sqlc,goose,golangci-lint(in~/go/bin— keep it onPATH)
First commands worth knowing
| Command | What |
|---|---|
make test | Go suite (unit + integration, real database) |
make test-front | vitest |
make e2e | Playwright against the real production binary |
make lint | golangci-lint + eslint |
make sqlc | regenerate typed queries after editing .sql files |
make seed | idempotent demo data (refuses production) |
make build | the production binary, frontend embedded |