Skip to main content

Product App Spec

apps/app is the main product application in the Continu.dev starter kit.

It serves three separate surfaces in one Next.js app:

  • org Organization staff workflows on the main app host.
  • portal Tenant-facing customer workflows on tenant hosts.
  • platform Platform-operator workflows across all organizations.

Responsibilities

  • authenticated product routes
  • surface-specific layouts and navigation
  • shared auth, legal, notification, and UI primitives used across product surfaces
  • app-facing Convex consumers that call into packages/backend/convex

Non-responsibilities

  • public marketing pages that do not need the authenticated product shell
  • authored backend modules
  • repo-wide shared packages that are not app-specific

Route Ownership

  • apps/app/src/app/[locale]/org/** Organization-owned routes and route-local support code.
  • apps/app/src/app/[locale]/portal/** Portal-owned routes and portal-only flows.
  • apps/app/src/app/[locale]/platform/** Platform-owned routes and platform operations.

Route-local support stays under the owning tree in _components/*, _hooks/*, and _lib/*.

Only promote code into apps/app/src/app/[locale]/_components/*, _hooks/*, and _lib/* after reuse across surfaces is proven.

Backend Boundary

  • Use @convex/* from apps/app/src/** for app-facing Convex imports.
  • Author all backend modules in packages/backend/convex/**.
  • Do not add authored backend code under apps/app/convex.

URL Model

  • org URLs are app-host routes without /org in the public URL
  • portal URLs are tenant-host routes without /portal in the public URL
  • platform URLs stay under /platform

Use the canonical route helpers in apps/app/src/app/[locale]/_lib/appRoutes.ts instead of rebuilding visible URLs locally.