Contributing
Development environment
Section titled “Development environment”The project uses a Dev Container. Open the repository in VS Code or JetBrains and accept the “Reopen in Container” prompt. This sets up Deno, Node, PostgreSQL, Redpanda, and all dependencies automatically.
Code standards
Section titled “Code standards”- TypeScript everywhere: Deno for backend, Vite and React for frontend.
- No comments in code: the codebase should be self-documenting. Exceptions:
biome-ignoreandeslint-disabledirectives. - Functional where possible: pure functions with explicit inputs and outputs over mutable module-level state.
- Single source of truth: shared types in
backend/src/types/, shared utilities inbackend/src/lib/, shared frontend utilities infrontend/src/utils/. - Import map aliases: use
@veta/http,@veta/messaging,@veta/types/ordersetc. instead of relative paths like../lib/http.ts.
Pre-commit hooks
Section titled “Pre-commit hooks”The pre-commit hook runs 9 checks automatically:
- Verify clean working directory.
- Backend lint (
deno lint). - Backend type-check (
deno task check). - Backend unit tests (
deno task test). - Frontend lint (Biome).
- Frontend type-check (tsc).
- Frontend unit tests (Vitest).
- Smoke tests (auto-skipped if local services are not running).
- Integration tests (auto-skipped if local services are not running).
You cannot push until all checks pass.
Commit messages
Section titled “Commit messages”Follow Conventional Commits:
feat(risk): add pre-trade risk-engine with fat-finger checksfix(ci): wait for risk-engine prices before integration testsrefactor: consolidate shared types across 29 filesdocs(personas): document trading styles and desk segregationtest(replay): add unit tests for session replay panelPull requests
Section titled “Pull requests”- Release Please auto-generates version bumps and changelogs.
- Dependabot auto-merges patch-level dependency updates.
- CI must be green before merge (integration tests are
continue-on-errorfor known flaky strategies). - Screenshots are automated, not manual: CI captures the full UI suite on every PR and posts a
📸 UI screenshotscomment showing what changed against the committed baseline. Verify a UI-affecting change in a running instance of the app yourself first; do not rely on unit tests alone to confirm layout or visual behaviour. See CI/CD Pipeline for how screenshot capture and diffing work.
Documentation standards
Section titled “Documentation standards”- Use British English spelling and grammar.
- Use a professional, direct tone. Avoid conversational or jovial phrasing.
- Do not use em-dashes (
—). Replace with commas, periods, or restructure the sentence. - Mark key documents with a leading star in curated document lists.
- Do not use ASCII-art diagrams; use mermaid (
graph LR/graph TD) rendered by the mermaid integration inastro.config.mjs.
Contributors
Section titled “Contributors”VETA is built by a small team of humans and AI assistants. Each contributor below has had a substantive role in shaping the codebase.
Miles Burton
Section titled “Miles Burton”Founder, lead engineer, and product owner. Designed the platform’s architecture, runs the production deployment, and reviews every change before merge. Contact: mail@milesburton.com.
Claude (Anthropic)
Section titled “Claude (Anthropic)”AI pair programmer used for documentation, devcontainer infrastructure, refactoring, and test scaffolding. Frequent contributor to the docs site, the testing taxonomy, and incremental backend changes. Used via the Claude Code CLI inside the dev container.
Codex (OpenAI)
Section titled “Codex (OpenAI)”AI assistant used for targeted code generation, particularly in the frontend Redux slices and React component layers. Used through the VS Code extension.
GitHub Copilot
Section titled “GitHub Copilot”AI completion assistant used for inline code suggestions across both the backend Deno code and the frontend React/Vitest test files. Particularly useful for boilerplate test setup and Zod schema definitions.
nVidia Spark (DeepSeek R1)
Section titled “nVidia Spark (DeepSeek R1)”AI reasoning model used for architecture review, complex refactor planning, and reviewing risk-engine logic. Accessed via the nVidia Spark interface.
Each AI assistant’s contributions are attributed in commit messages with a Co-Authored-By trailer. Humans retain final review authority on all merges to main.