Skip to content

Contributing

ToolMinimum version
Node.js24+
npm10+
Gitlatest
  1. Clone the repository

    Terminal window
    git clone https://github.com/user/recon-web.git
    cd recon-web
  2. Install dependencies

    Terminal window
    npm install

    npm workspaces will hoist shared dependencies and link the five packages together automatically.

Terminal window
npm run dev

Starts the Fastify API server on http://localhost:3000 with file-watch restarts.

Core must be compiled before packages that depend on it. The recommended build order:

Terminal window
# Build core first (other packages reference its types)
npx tsc -b packages/core
# Build everything
npx tsc --build
# Build the web frontend (production bundle)
npm run build -w @recon-web/web
Terminal window
npm test -w @recon-web/core

Runs approximately 109 tests covering all handlers, the runner, and utility functions. Tests use Vitest with MSW for HTTP mocking.

Terminal window
npm test --workspaces
Terminal window
# ESLint across all packages
npm run lint
# TypeScript type checking (no emit)
npm run typecheck

You can build a production Docker image for the API server:

Terminal window
docker build -f packages/api/Dockerfile -t recon-web-api:test .
  1. Branch from main

    Terminal window
    git checkout -b feat/my-change main
  2. Make your changes — follow existing code style, add or update tests.

  3. Verify locally

    Terminal window
    npm run lint
    npm run typecheck
    npm test --workspaces
  4. Commit with a descriptive message

    Use conventional-style prefixes where appropriate (feat:, fix:, docs:, refactor:, test:, chore:).

    Terminal window
    git commit -m "feat(core): add robots-txt handler"
  5. Push and open a pull request against main. The CI pipeline will run lint, tests, audit, a Docker build, and Trivy scanning automatically.