Repository map

What each application and shared package owns in the Linea monorepo.

Applications

ApplicationRoleRuntime
apps/webWorkflow authoring, workspace administration, and operational UITanStack Start
apps/mobileWorkspace-member monitoring, approvals, and push notificationsExpo and React Native
apps/platform-apiVersioned REST API, realtime events, auth, and control-plane operationsNestJS
apps/execution-workerQueue consumer and workflow execution driverNestJS application context
apps/background-workerSchedules, analysis, and asynchronous maintenanceNestJS application context
apps/run-gatewayPlanned isolated execution gatewayNot implemented yet
apps/docsArchitecture, API, security, and contributor knowledgeNext.js and Fumadocs

Shared packages

PackageOwns
@linea/aiProvider adapters, model metadata, and normalized AI calls
@linea/authBetter Auth configuration and shared authentication behavior
@linea/configShared TypeScript, ESLint, and environment configuration
@linea/dbDrizzle schema, repositories, transactions, and migrations
@linea/protocolPublic operations, schemas, events, enums, and stable errors
@linea/queueBullMQ queues, job payloads, delivery, and worker helpers
@linea/runtimeWorkflow schema, node definitions, expression handling, and graph walking
@linea/sdkServer and end-user client interfaces over the public protocol
@linea/typesSmall cross-package types that have no deeper owner
@linea/sdk-reactHeadless React bindings for End-User applications
@linea/uiShared React design-system primitives
@linea/connectorsPlanned connector boundary; no runtime implementation yet

Status matters

Some directories are intentional placeholders for future boundaries. Check a package's scripts and source before assuming that its planned responsibility is implemented.

Dependency rule

Keeping dependencies pointed toward shared modules allows each application to build and deploy independently while keeping a route, SDK method, schema, and documentation change in one repository and one pull request.

On this page