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:
orgOrganization staff workflows on the main app host.portalTenant-facing customer workflows on tenant hosts.platformPlatform-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/*fromapps/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
/orgin the public URL - portal URLs are tenant-host routes without
/portalin 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.