packages/shared: shared TypeScript types/utilities, built topackages/shared/dist.packages/server: Node/Express application inpackages/server/src, bundled tobuild/server.packages/webapp: React UI inpackages/webapp/srcwith static assets inpackages/webapp/assets, bundled tobuild/webapp.docs/: product docs and images;build/: generated artifacts.
npm install # install workspace dependencies
npm start # webapp dev server + server (concurrently)
npm run build # build shared, webapp, and server
npm run build:local # build with local deployment URL
npm run lint # eslint for server + webapp
npm run test # vitest for server + webapp
npm run test:watch --workspace=webapp
npm run test:coverage --workspace=serverFor webapp-only builds set APPLICATION_SERVER_VERSION=0. For full builds set APPLICATION_SERVER_VERSION=1 and DEPLOYMENT_URL=<server-url>.
- TypeScript-first codebase; prefer explicit types and
constwhere possible. - Formatting is handled by Prettier (
.prettierrc: print width 120, single quotes, trailing commas). Usenpm run prettier:writewhen needed. - Linting via ESLint (
packages/*/.eslintrc.cjs) and Stylelint for styled-components (npm run lint:css --workspace=webapp).
- Vitest is used in
packages/serverandpackages/webapp(packages/*/vitest.config.ts). - Tests live under
packages/server/src/testsandpackages/webapp/src/testsand use*.test.ts/*.test.tsxnaming. - Run coverage with
npm run test:coverage --workspace=webappor--workspace=server.
- Recent history follows Conventional Commit-style prefixes (e.g.,
fix: ...,chore(deps): ...). Keep subject lines short and imperative. - PRs should include a concise summary, test commands run, and link any relevant issues. Include screenshots or GIFs for UI changes in
packages/webapp.
- Node
>=24.7.0and npm>=11.5.1are required. - Redis support is optional via
APOLLON_REDIS_URL(andAPOLLON_REDIS_DIAGRAM_TTL); server defaults to local Redis when empty. - The server stores shared diagrams on disk; create a
diagrams/directory for local development.