What is the work
Establish the root application foundation for Bristol Carousel: a TypeScript Next.js App Router app, Convex client wiring, and the initial Vitest, Convex test, Sharp-compatible Node test, and Playwright harnesses.
Planned areas:
package.json
app/layout.tsx
app/page.tsx
app/ConvexClientProvider.tsx
convex/
vitest.config.ts
playwright.config.ts
tests/e2e/
Why does it matter
The repo is currently documentation-only. Every later unit depends on having a working app shell, Convex integration, and reliable test commands before product behavior can be added safely.
What does done mean
- A root Next.js App Router app exists and renders locally.
- Convex is wired for client-side studio components.
- Vitest, Convex testing, Sharp-compatible Node tests, and Playwright are configured.
- The root page links into the studio entry point.
- README development setup is updated enough for another contributor to run the app.
Acceptance criteria
Blockers
None.
What can make this fail
- Scaffolding creates a nested app structure that complicates Vercel deployment.
- Convex setup requires local secrets that accidentally leak into git.
- Test tools are installed but not actually runnable in the same project shape.
- Sharp-compatible testing is skipped, creating later surprises when SVG export work starts.
How should Codex verify it
- Run the project’s install/build/lint/test commands once they exist.
- Run the initial Vitest suite.
- Run the initial Convex test/smoke path.
- Run Playwright against the root page and studio route.
- Check
git status for generated secrets or duplicate/empty files.
What is the work
Establish the root application foundation for Bristol Carousel: a TypeScript Next.js App Router app, Convex client wiring, and the initial Vitest, Convex test, Sharp-compatible Node test, and Playwright harnesses.
Planned areas:
package.jsonapp/layout.tsxapp/page.tsxapp/ConvexClientProvider.tsxconvex/vitest.config.tsplaywright.config.tstests/e2e/Why does it matter
The repo is currently documentation-only. Every later unit depends on having a working app shell, Convex integration, and reliable test commands before product behavior can be added safely.
What does done mean
Acceptance criteria
.envfiles are committed.Blockers
None.
What can make this fail
How should Codex verify it
git statusfor generated secrets or duplicate/empty files.