Scout is a UK neighbourhood discovery application. Users can search by address or postcode and navigate to an area profile backed by HomeData.
The repository is a TypeScript monorepo built with Next.js, React, pnpm, Turborepo, Panda CSS, Vitest, and Testing Library.
Requirements:
- Node.js 24;
- pnpm 11.7.0;
- a HomeData API key.
Install dependencies and create a local environment file:
pnpm install
printf 'HOMEDATA_API_KEY=your-key\\n' > .env.local
pnpm devThe web application runs at http://localhost:3000. Environment files are ignored and must not be committed.
| Command | Purpose |
|---|---|
pnpm dev |
Run development tasks |
pnpm build |
Build the workspace |
pnpm lint |
Run ESLint |
pnpm check-types |
Run TypeScript checks |
pnpm test |
Run package tests in watch mode where supported |
pnpm test:ci |
Run UI tests once with enforced coverage |
pnpm test:e2e |
Run Playwright journeys and accessibility scans |
pnpm codegen |
Regenerate API and styling outputs |
pnpm generate:component |
Generate a UI component scaffold |
| Path | Responsibility |
|---|---|
apps/webapp |
Next.js product application |
packages/ui |
Shared accessible UI components and Panda output |
packages/scout-preset |
Design tokens and global styling |
packages/homedata |
Generated HomeData API client |
packages/eslint-config |
Shared lint configuration |
packages/typescript-config |
Shared TypeScript configuration |
- Architecture
- Adding features
- Code generation
- Testing
- Deployment
- AI-assisted development
- Architecture decisions
GitHub Actions runs linting, type checks, unit tests with coverage, the workspace
build, and Playwright browser journeys with axe accessibility scans. Pull
requests from repository branches and pushes to develop deploy to Vercel
Preview. v* tags deploy to Production. Successful tag deployments create a
GitHub Release and generated changelog.
See deployment documentation for Vercel project settings, required GitHub secrets, release tagging, and environment setup. See CHANGELOG.md for the changelog policy.
Shared UI components use native semantics, accessible names, keyboard behavior, disabled states, and decorative icon treatment. Accessibility behavior is covered by colocated unit tests and browser-level axe scans in the E2E suite.