Matura Docs
Operations & Demo

Local development

Running the monorepo locally — toolchain, commands, and ports.

Matura is a pnpm + Turborepo monorepo. See Quickstart for the end-to-end "run the stack" recipe; this page is the reference for toolchain and commands.

Toolchain

  • Node: an even-LTS Node (22.13+/24) — Hardhat 3 requires it; the repo pins <25. Node 24 may be installed keg-only (not on PATH):
    export PATH="/opt/homebrew/opt/node@24/bin:$PATH"   # verify: node -v → v24.x
  • pnpm (via Corepack), Postgres (API), Docker (integration + cross-stack e2e tests).

Whole-monorepo commands

pnpm build | lint | typecheck | test     # turbo, across every package/app

Ports

AppCommandPort
Marketing (@matura/landing)pnpm --filter @matura/landing dev3001
Product (@matura/app)pnpm --filter @matura/app dev3002
Docs (@matura/docs)pnpm --filter @matura/docs dev3003
API (@matura/api)pnpm --filter @matura/api dev—

Contracts

pnpm --filter @matura/contracts contracts:compile
pnpm --filter @matura/contracts contracts:test     # unit + integration + fuzz + gas
pnpm --filter @matura/contracts demo:local         # deploy → seed → verify (local chain)

This docs site

apps/docs regenerates its Reference section and the Deployed addresses table on every dev/build via a prebuild step (scripts/sync-reference-docs.mjs) that reads the repo docs/ and the chain manifest. That generated content is gitignored — edit the source docs, not the generated pages.

For CI order and build gotchas, see CLAUDE.md.