Skip to content

U1: Scaffold Next.js, Convex, and test harness #1

Description

@breadback00-dev

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

  • Root page renders without product features implemented.
  • Studio route is reachable from the root page.
  • Convex provider is available to client components.
  • Test harnesses can run at least one smoke test in each configured layer.
  • No local secrets or generated .env files are committed.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions