A-Grade Docs
Developer

Development

Local commands, workspace conventions, and verification notes.

Development

Run commands from the repo root unless noted.

Install

bun install

Common Commands

bun run web:dev
bun run web:build
bun run web:typecheck
bun run docs:dev
bun run docs:build
bun run docs:typecheck
bun run shared:typecheck
bun run typecheck

Workspace Layout

apps/
  web/   A-Grade Services website, Next.js App Router, Tailwind v4
  docs/  Fumadocs documentation app
packages/
  shared/ Framework-neutral shared TypeScript

Keep app-specific dependencies in the app that imports them:

bun add --cwd apps/web package-name
bun add --cwd apps/docs package-name
bun add --cwd packages/shared package-name

Keep shared types and framework-neutral helpers in packages/shared.

Local Browser Notes

apps/web runs Next dev on port 3000 with -H 0.0.0.0. The docs app runs on port 3001. For browser testing, prefer:

http://localhost:3000

When headless Chrome was pointed at 127.0.0.1, Next dev logged a blocked cross-origin dev resource for /_next/webpack-hmr. Hydrated interaction checks should use localhost unless allowedDevOrigins is intentionally configured.

Documentation Assets

UI review screenshots live in:

apps/docs/public/ui-review/

Reference them from MDX as:

![Description](/ui-review/file-name.png)

Before Editing UI

Check these files first:

  • apps/web/app/page.tsx for homepage section order and sticky hero mechanics.
  • apps/web/components/layout/NavBar.tsx for fixed nav and overlay menu.
  • apps/web/components/layout/MiddleNav.tsx for scroll-linked nav collapse.
  • apps/web/components/home/ProjectsShowcase.tsx for the homepage projects filmstrip.
  • apps/web/components/layout/Footer.tsx for the full-height footer.

Preserve the current bold, minimal, cinematic direction unless the design task explicitly changes it.

Launch Readiness Checklist

  • Mobile nav does not overflow.
  • Overlay menu works with keyboard and touch.
  • Contact form submits to a real destination.
  • Form controls have labels, names, validation, and states.
  • Placeholder metrics, phone numbers, team entries, and social links are replaced or removed.
  • Secondary page imagery is curated and relevant.
  • bun run typecheck passes.
  • bun run web:build and bun run docs:build pass.