Documentation

Monorepo Development

Working in the shawweb repository day to day.

Everyday commands

From the repo root
pnpm install               # workspace install
pnpm dev                   # turbo dev (all apps)
pnpm --filter website dev  # one app
pnpm build                 # turbo build (all apps)
pnpm typecheck             # tsc across apps + packages
pnpm lint                  # eslint across apps

Engine tests

The vector engine's regression battery runs in plain Node (it compiles the TypeScript source to a temporary CommonJS build first):

cd packages/engines/vector-processing && bash tests/run.sh

Conventions

  • Packages export TypeScript source directly; apps consume them via transpilePackages. Keep relative imports extensionless.
  • The website never imports workspace packages — its token system is an adapted copy of @shawweb/core.
  • No fabricated content anywhere: statuses, metrics, and screenshots reflect reality.
  • Website assets regenerate through the asset pipeline (pnpm assets:build) rather than manual exports.
  • Screenshot capture needs a one-time browser install: pnpm --filter @shaw/asset-pipeline exec playwright install chromium.