Phase 1: Next.js App Router scaffold (TS strict, Tailwind v4, Vitest), ApiClient/MockApiClient boundary, /ask + /choose with 8 methodology cards, advanced dials drawer, root redirect, README quickstart. REQ-52..56 covered. Gates: typecheck/lint/test(20)/build green. Verify: PASS zero P0, 4 P1 flagged post-hoc.
ResearchX
A deep-research studio where you bring your own model, storage, and memory; choose a research methodology before a single query fires; and every claim in the final report is anchored to a visited, verified, quotable source.
Status: prototype (milestone v0.1) — UI/UX with mock data. No backend, no API keys, no network calls.
Quickstart
cd frontend
pnpm install
pnpm dev
Open http://localhost:3000 — you land on Ask. Type a question, click Research this, pick a methodology on Choose (Deep Report is the recommended default), and press Start research.
Three clicks from cold start to initiated research.
What's in the prototype
| Screen | What it does |
|---|---|
/ask |
One question box + one optional context box. Nothing else competing for attention. |
/choose |
All 8 locked methodology cards — mock ETA, cost estimate, why-recommended, and the 12 methodology dials behind each card's Advanced drawer. |
/run/[id] |
Placeholder — Plan & Run ships in phase 2. |
All data flows through a typed ApiClient interface backed by MockApiClient — the same components will talk to the FastAPI backend via the OpenAPI-generated client in the MVP milestone, with zero rewrites.
Scripts
Run inside frontend/:
| Command | Purpose |
|---|---|
pnpm dev |
Dev server on :3000 |
pnpm build |
Production build |
pnpm lint |
ESLint (flat config) |
pnpm typecheck |
tsc --noEmit (strict) |
pnpm test |
Vitest + Testing Library (jsdom) |
Repository layout
frontend/ Next.js 15 App Router, TypeScript strict, Tailwind v4, Vitest
.ciagent/ Pipeline state (roadmap, requirements, plans, checkpoints)
Milestone v0.2 (MVP: FastAPI backend, research engine, adapter layer, trust loop) begins only after this prototype is approved.