# Architecture overview

ServDiary is a home servicing scheduling tool and CRM.

## Stack

- PHP `^8.3` and Laravel `^13` in [`laravel/`](../../laravel/)
- Jetstream with Inertia + Teams for the website
- Sanctum for Android and iOS clients
- Vue + Inertia for the web UI

## Layers

```mermaid
flowchart TB
  subgraph clients [Clients]
    Web[Web Inertia]
    Mobile[Android iOS]
  end
  subgraph app [laravel]
    Platform[Platform auth User Team]
    Domains[Product Domains]
  end
  Web --> Platform
  Web --> Domains
  Mobile --> Platform
  Mobile --> Domains
  Domains --> Platform
```

## Independence

Product features are domain modules under `laravel/app/Domains/{Feature}/`. Each domain owns its models, actions, HTTP layer, policies, routes, docs page, and Feature tests. Domains may use platform auth/teams; they must not depend on other product domains.

See [Domains](domains.md) and [Web and API](web-and-api.md).
