Skip to main content

Core web directories

Contract packages

Use @overlay/app-core for shared contracts and app shell metadata. Use @overlay/api-client for typed wrappers around /api/v1 routes. New web client code should not copy fetch logic from route components. Add or update a typed client method in @overlay/api-client when a route becomes part of the reusable API surface.

Layering rules

  • src/server can use Node-only and server-only modules.
  • src/shared must stay isomorphic and browser-safe.
  • convex can import src/shared, but must not import src/server.
  • Sensitive provider calls stay behind server routes.