Developer Guide — Getting started
This guide is for engineers working on AXON. It assumes you've read Architecture → Overview.
What you'll find here
| Page | Contents |
|---|---|
| Repository layout | The monorepo tree — every app and package and what it does. |
| Backend services | Each NestJS service: endpoints, responsibilities, owned tables, integrations, workers. |
| Data model | The Prisma models and enums, grouped by domain. |
| Frontend (web app) | Routes, auth wiring (Privy + wagmi + SIWE), state, and the mobile‑screen reuse. |
| Smart contracts | AXONEscrow.sol and MockUSDC.sol — functions, events, build/test. |
| Conventions & patterns | The recurring patterns you must follow when changing the system. |
| Local development | Run the whole stack on your machine. |
Then see Deployment for the production runbook.
Prerequisites
- Node.js 20 and pnpm 8.15 (
corepack enable && corepack prepare [email protected] --activate). - Docker + Docker Compose (the whole stack runs in containers).
- A Base Sepolia RPC URL (e.g.
https://sepolia.base.org). - Partner credentials as needed: Privy app ID/secret, Sumsub app token/secret, OpenAI API key, MoonPay/Onramper keys. Most have sandbox defaults or fail closed when unset.
Mental model in 60 seconds
- It's a Turborepo + pnpm monorepo:
apps/*are deployable apps (frontends + NestJS services),packages/*are shared libraries. - All backend services compile against one Prisma schema (
@axon/db) and one shared config (@axon/shared-config); external vendors are wrapped in@axon/integration-layer. - The web app reuses screens/hooks from
apps/mobile-versionas a workspace dependency, so the core flows have one implementation. - Nothing talks to a service directly except the API gateway; locally and in prod, you go through it.
Build & checks
pnpm install # install the workspace
pnpm build # turbo build (packages first, then apps)
pnpm --filter web typecheck # type-check a single app
pnpm lint # turbo lint
pnpm test # turbo test (jest)
CI (.github/workflows/ci.yml) runs install → Prisma generate → build packages → typecheck packages + backend services → jest → contract tests → secret scanning on every push to main.