OpenSana Docs

Web App Architecture

A high-level map of the Next.js application and frontend domain boundaries.

The web app lives in apps/web.

Main Layers

  • app/: App Router pages and route composition
  • components/: UI building blocks and feature blocks
  • lib/: shared domain modules
  • hooks/: shared cross-domain hooks
  • providers/: Convex, Clerk, and other top-level providers

Architectural Style

  • feature-heavy UI is built from domain-oriented modules
  • thread and task behavior is split into cohesive subdomains
  • top-level orchestration should delegate to subsystems instead of accumulating special cases

Contributor Guidance

  • keep hooks close to their owning domain
  • prefer shared abstractions only when multiple domains actually need them
  • preserve the difference between UI-layer concerns and Convex/backend concerns

On this page