spreadlab/README.md
Justin Visser 7c16e6ea4f docs: development workflow in README
Two-terminal dev loop (go run + vite proxy), the full check matrix,
and the regenerate-types rule: web/src/types/ is generated from the
Go structs and must never be edited by hand.
2026-06-10 13:47:21 +02:00

1.2 KiB

spreadlab

Self-hosted dashboard that runs an agent-based deepfake-spread model live: change the levers, watch the spread, and (later) search for the best intervention under a budget. Output is illustrative, not validated.

Status: milestone 2, thin API + parity page done.

Layout

  • internal/engine/ - the pure simulation engine (no web dependencies)
  • internal/api/ - thin JSON API over the engine
  • cmd/spreadlab/ - the server binary (-table prints a CLI comparison)
  • web/ - Vue 3 + TypeScript frontend (Vite)
  • web/src/types/ - TypeScript types GENERATED from the Go structs; never edit by hand, regenerate with go generate ./...

Development

Two terminals:

go run ./cmd/spreadlab        # API on localhost:8080
cd web && npm run dev         # Vite dev server, proxies /api to :8080

Checks:

go test ./...                              # engine + API tests
golangci-lint run ./...                    # Go linter
go test -bench=. -benchmem ./internal/engine/   # benchmark baseline
cd web && npm run test:unit && npm run lint && npm run type-check

After changing Config, Result, or the API response types, run go generate ./... and commit the regenerated files in web/src/types/.

MIT licensed.