Forge is a full-stack Next.js 14 client portal for Dark Factory project intake and real-time build tracking.
- Project Brief Submission page with guided multi-step form
- Build Tracker Dashboard with 6-stage pipeline timeline
- Live SSE event stream with reconnect-safe
idreplay - Real-time stats and log feed
- In-memory storage for briefs, stages, logs, and stats
- Zod request validation and structured API error responses
- Next.js 14 (App Router)
- TypeScript (strict mode)
- Tailwind CSS
- shadcn-style UI primitives
- Zod validation
- Vitest + Playwright tests
- Install dependencies:
npm install - Create env file:
cp .env.example .env.local - Run dev server:
npm run dev
Defined in .env.example:
NEXT_PUBLIC_APP_NAMEPIPELINE_STAGE_MIN_MSPIPELINE_STAGE_MAX_MSPIPELINE_TICK_MSPROJECT_TTL_MS
/Project Brief Submission/tracker/[projectId]Build Tracker Dashboard
POST /api/projectscreate project briefGET /api/projects/[projectId]fetch projectGET /api/projects/[projectId]/statsfetch statsPOST /api/projects/[projectId]/pipeline/startstart simulation pipelineGET /api/projects/[projectId]/eventsSSE stream (heartbeat + replay + disconnect cleanup)
src/lib/store/in-memory-store.ts: in-memory project statesrc/lib/store/event-bus.ts: project-scoped pub/sub and event replay bufferssrc/lib/pipeline/simulation-engine.ts: orchestrates 6-stage execution and emits stage/log/stats eventssrc/app/api/projects/*: HTTP + SSE handlers with validation and typed envelopessrc/components/project-brief/*: form flow UIsrc/components/build-tracker/*: dashboard visualization and live updates
- Unit tests:
npm run test:unit - Integration tests:
npm run test:integration - E2E tests:
npm run test:e2e
Data is in-memory only and resets on process restart. For local reset, restart the dev server.
MIT — see LICENSE