Event photography marketplace -- photographers upload action sports photos, customers browse and purchase them.
Tech stack: Go (Chi, pgx, sqlc) + SvelteKit 2 (Svelte 5, Bun) + PostgreSQL
All tools are defined in .mise.toml and managed by mise:
# Install mise (see https://mise.jdx.dev/getting-started.html), then:
mise trust && mise installThis puts go, bun, just, air, sqlc, and other tools on your PATH automatically.
Manual install (without mise)
Install each tool individually:
Go-based tools:
go install github.com/air-verse/air@latest
go install github.com/gzuidhof/tygo@latest
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latestgit clone <repo-url> && cd motophoto
docker compose up -d db # Start PostgreSQL
cd web && bun install && cd .. # Install frontend dependencies
cp .env.example .env # Configure environment
just dev # Start dev servers (Go :3001 + SvelteKit :5173)- Linux -- develop natively. Install Docker Engine for local Postgres.
- Windows -- develop inside WSL 2. Docker Engine installs directly inside WSL.
All commands are defined in Justfile:
| Command | What it does |
|---|---|
just dev |
Start both backend (Air) and frontend (Vite) dev servers |
just dev -f |
Frontend only |
just dev -b |
Backend only |
just build |
Full production build (frontend + backend) |
just check |
Parallel checks via tempo (lint, format, build, test, sqlc diff) |
just check --fix |
Auto-format then verify |
just lint |
Run all linters via tempo |
just test |
Run Go tests + Vitest |
just format |
Auto-format all code via tempo |
just generate |
Run sqlc + tygo code generation |
just cov |
Coverage report (octocov) |
just docker-build |
Build Docker image |
just docker-run |
Run Docker image locally |
just clean |
Remove build artifacts |
just db |
Start local Postgres |
just db reset |
Drop and recreate database |
| Guide | Covers |
|---|---|
| Architecture | System design, request flow, project structure, deployment |
| Go Backend | Router, handlers, sqlc, error handling, testing |
| SvelteKit Frontend | Routing, data fetching, Svelte 5, configuration |
| Style Guide | Naming, vocabulary, comments, API design, logging |