Development
Prerequisites
- Node 20+ and pnpm 9 (
corepack enableprovides it). - An AWS account only if you want to deploy — the canvas itself runs fully offline in the browser.
Setup
pnpm installpnpm dev:app # canvas app → http://localhost:5173pnpm dev:web # marketing site → http://localhost:4321pnpm dev:docs # docs → http://localhost:4322pnpm test # engine + API unit testspnpm typecheck # all packagesThe app boots with apps/app/public/config.json (dev placeholders). If the
config can’t be loaded it runs in local-only mode (drawing, autosave to
IndexedDB, all exports work; cloud sync and sign-in are disabled) — the app
never hard-depends on the backend.
API locally
# In services/api: run the router against fakes (unit tests) or deploy dev:cd infranpx cdk deploy -c env=dev --all# Then point the app at the deployed API:VITE_DEV_API_PROXY=https://api.dev.frond.cntnus.app pnpm --filter @frond/app devThe Lambda can also run with AUTH_DISABLED=true and the dev-<sub> token
convention for local integration testing (never enabled in deployed
environments).
Conventions
- TypeScript strict everywhere;
pnpm typecheckin CI before synth. - The engine must stay framework-free; DOM use is limited to canvas/pointer
APIs, all behind the
FrondEnginefacade. - Nothing may hardcode a domain, account ID, or region — everything flows through configuration (see Configuration).
- Conventional Commits;
maindeploys to dev automatically.