Skip to content

Repository files navigation

Scout

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.

Getting started

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 dev

The web application runs at http://localhost:3000. Environment files are ignored and must not be committed.

Common commands

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

Repository structure

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

Engineering documentation

CI and deployment

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.

Accessibility

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.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages