Developer
Development
Local commands, workspace conventions, and verification notes.
Development
Run commands from the repo root unless noted.
Install
bun installCommon Commands
bun dev
bun run dev:plainbun run web:dev
bun run web:build
bun run web:typecheckbun run docs:dev
bun run docs:build
bun run docs:typecheckbun run sales:dev
bun run sales:build
bun run sales:typecheckbun run shared:typecheck
bun run typecheckWorkspace Layout
apps/
api/ Hono document API
web/ A-Grade Contracting website, Next.js App Router, Tailwind v4
docs/ Fumadocs documentation app
sales/ Vite invoice and proposal workspace
packages/
shared/ Framework-neutral shared TypeScriptKeep 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 apps/sales package-name
bun add --cwd packages/shared package-nameKeep shared types and framework-neutral helpers in packages/shared.
Local Browser Notes
bun dev starts the complete workspace through Portless:
https://web.agrade
https://docs.agrade
https://sales.agrade
https://api.agradebun run dev:plain is the direct-port fallback. Web uses 3000, Docs uses 3001, Sales uses
5173, and the API uses 8787:
http://localhost:3000
http://localhost:3001
http://localhost:5173
http://localhost:8787/healthDocumentation Assets
UI review screenshots live in:
apps/docs/public/ui-review/Reference them from MDX as:
Before Editing UI
Check these files first:
apps/web/app/page.tsxfor homepage section order and sticky hero mechanics.apps/web/components/layout/NavBar.tsxfor fixed nav and overlay menu.apps/web/components/layout/MiddleNav.tsxfor scroll-linked nav collapse.apps/web/components/home/ProjectsShowcase.tsxfor the homepage projects filmstrip.apps/web/components/layout/Footer.tsxfor 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 typecheckpasses.bun run web:buildandbun run docs:buildpass.