Starter Docs

Quality of Life

Hooks, CI, and developer quality tooling across the monorepo.

Consistency, fast feedback, and automation across TS, Rust, Bash, and Python.

Cross-repo (Tier 1)

LayerWhat we use
Git hooksLefthook: format, lint, typecheck, large-files, secrets, commit-msg (see scripts/git-hooks/)
Task runnerBun scripts via bun run <task> (see root package.json)
Editor consistency.editorconfig: LF, indent, charset, final newline
CI.github/workflows/ci.yml: split quality gates (lint, typecheck, coverage tests, web e2e) on push/PR to main
CD.github/workflows/cd.yml: staged deploy workflow template (staging on main, production on version tags)
Dev Container.devcontainer/: reproducible env (Bun, Rust, Python, shell tools). Reopen in Container; see .devcontainer/README.md

Per-language

LanguageLint / formatTest / types
TS/JSoxlint (lint), oxfmt (format)tsc (typecheck), Vitest/Jest if added
Rustrustfmt, clippycargo test (e.g. apps/rust)
Bashshellcheck, shfmt(bats optional)
Pythonruff (check + format)(pytest optional); scripts/python

One-command surface

From repo root:

  • bun run format — oxfmt + scripts (shfmt, ruff) + cargo fmt
  • bun run lint — Turbo lint + scripts (shellcheck, ruff)
  • bun run typecheck — TS only
  • bun run test — Turbo tests + script tests
  • bun run test:coverage — TS coverage runs + all language tests
  • bun run test:e2e:web — Playwright browser tests for apps/web
  • bun run build — Turbo build

Next-level (Tier 2+)

  • Rust: cargo watch / cargo nextest for faster feedback
  • C: sanitizers (ASan/UBSan) in debug builds
  • Python: Pyright + pytest in CI
  • Releases: changesets for versioning and changelogs
  • Environments: Dev Container (.devcontainer/) or Nix for pinned toolchains

See PROJECT.md for full layout and commands.

On this page