Skip to main content
This page lists common Makefile targets from the repo root. Most day-to-day targets run inside Docker via make. The pre-push gate make local-verification can also run natively on the host — see Local verification.

Start / stop

Stripe

Database

Operational one-offs (catalog backfills, reconciliation) have no Make target — run via compose + ts-node locally. See Operational Scripts.

Dependencies & build

Decision tree: git pull / edited package.json / stale deps → make deps-install. Still broken → make deps-fix. Image rebuild → make fresh-start. Deprecated aliases (pnpm-install, pnpm-install-repair, pnpm-lockfile-update) still work and print a notice.

Codegen & quality

Use make local-verification as a pre-push gate. Prefer Local verification for backend selection, native prerequisites, and CI relationship. If it passes locally, CI is far more likely to pass on the first run.

Dev proxy Caddyfile

These targets run on the host (they use docker run for Caddy validation, or curl to localhost:8888). They do not replace make test; they guard the unified dev URL routing only. CI: The integration workflow job dev-proxy-verify runs validate-dev-proxy on every pull request. The routing smoke is local-only unless you add a Compose-based CI profile. If backend tests run out of memory locally, increase the heap for a run:

Deploy (Railway)

For the full list, run:

Lockfile policy

pnpm-lock.yaml is generated artifact state, not hand-authored code.
  • Never hand-edit pnpm-lock.yaml.
  • After merge conflicts in pnpm-lock.yaml, resolve the conflict markers, then run make pnpm-lockfile-repair to regenerate a valid lockfile.
  • Before pushing or running make fresh-start, run make pnpm-lockfile-frozen-check to fail fast on lockfile integrity problems.
  • Commit the regenerated pnpm-lock.yaml in the same PR as dependency changes.

What’s next?