# better-tracker/tracker-mono architecture

> Architecture diagram of the GitHub repository better-tracker/tracker-mono, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/better-tracker/tracker-mono
- Repository: https://github.com/better-tracker/tracker-mono

## Overview

Project Tracker is currently a workspace skeleton, not a functioning tracker: the web page only reports that it is running, the API returns 404s, and mobile and shared packages are empty boundaries. The principal available workflow is a user opening the web app; separately, the API starts and listens for requests. The README documents mobile and local PostgreSQL as development options, but the API does not connect to PostgreSQL. Project route, controller, and service files describe intended roles only; no active route wiring is shown.

Main entry points: [`apps/api/src/server.ts`](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/server.ts) (API server), [`apps/web/src/app/page.tsx`](https://github.com/better-tracker/tracker-mono/blob/main/apps/web/src/app/page.tsx) (Web home), [`apps/mobile`](https://github.com/better-tracker/tracker-mono/tree/main/apps/mobile) (Mobile app), [`apps/api/src/app.ts`](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/app.ts) (Fastify app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_apps["Application shells"]
  node_web["Web home<br/>[page.tsx]"]
  node_mobile["Mobile app"]
end

subgraph group_api["API boundary"]
  node_api_server["API server<br/>[server.ts]"]
  node_api_app["Fastify app<br/>[app.ts]"]
  node_project_routes["Project routes<br/>[projects.routes.ts]"]
  node_project_controller["Project controller"]
  node_project_service["Project service"]
end

subgraph group_shared["Reserved packages"]
  node_contracts["API contracts<br/>[index.ts]"]
  node_api_client["API client<br/>[index.ts]"]
  node_database_package["Database boundary<br/>[index.ts]"]
end

subgraph group_local["Local database"]
  node_postgres[("PostgreSQL<br/>[compose.yml]")]
end

node_user(("User"))

node_user -->|"opens"| node_web
node_user -->|"runs"| node_mobile
node_user -->|"requests"| node_api_server
node_api_server -->|"builds"| node_api_app

click node_web "https://github.com/better-tracker/tracker-mono/blob/main/apps/web/src/app/page.tsx"
click node_mobile "https://github.com/better-tracker/tracker-mono/tree/main/apps/mobile"
click node_api_server "https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/server.ts"
click node_api_app "https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/app.ts"
click node_project_routes "https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.routes.ts"
click node_project_controller "https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.controller.ts"
click node_project_service "https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.service.ts"
click node_contracts "https://github.com/better-tracker/tracker-mono/blob/main/packages/contracts/src/index.ts"
click node_api_client "https://github.com/better-tracker/tracker-mono/blob/main/packages/api-client/src/index.ts"
click node_database_package "https://github.com/better-tracker/tracker-mono/blob/main/packages/database/src/index.ts"
click node_postgres "https://github.com/better-tracker/tracker-mono/blob/main/compose.yml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_mobile,node_user toneBlue
class node_api_server,node_api_app,node_project_routes,node_project_controller,node_project_service toneAmber
class node_contracts,node_api_client,node_database_package toneMint
class node_postgres toneRose
```

## Components

### Application shells

- [Web home](https://github.com/better-tracker/tracker-mono/blob/main/apps/web/src/app/page.tsx): `apps/web/src/app/page.tsx`
- [Mobile app](https://github.com/better-tracker/tracker-mono/tree/main/apps/mobile): `apps/mobile`

### API boundary

- [API server](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/server.ts): `apps/api/src/server.ts`
- [Fastify app](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/app.ts): `apps/api/src/app.ts`
- [Project routes](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.routes.ts): `apps/api/src/modules/projects/projects.routes.ts`
- [Project controller](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.controller.ts): `apps/api/src/modules/projects/projects.controller.ts`
- [Project service](https://github.com/better-tracker/tracker-mono/blob/main/apps/api/src/modules/projects/projects.service.ts): `apps/api/src/modules/projects/projects.service.ts`

### Reserved packages

- [API contracts](https://github.com/better-tracker/tracker-mono/blob/main/packages/contracts/src/index.ts): `packages/contracts/src/index.ts`
- [API client](https://github.com/better-tracker/tracker-mono/blob/main/packages/api-client/src/index.ts): `packages/api-client/src/index.ts`
- [Database boundary](https://github.com/better-tracker/tracker-mono/blob/main/packages/database/src/index.ts): `packages/database/src/index.ts`

### Local database

- [PostgreSQL](https://github.com/better-tracker/tracker-mono/blob/main/compose.yml): `compose.yml`

### Other components

- **User**

## Connections

- User → Web home: opens (evidence: `README.md`)
- User → Mobile app: runs (evidence: `README.md`)
- User → API server: requests (evidence: `README.md`)
- API server → Fastify app: builds (evidence: `apps/api/src/server.ts`)
