Use the feature page first when the question is about behavior. Use the package path when the question is about implementation.
| Workspace | Look here for | Start with |
|---|---|---|
apps/web | Rider UI, MapLibre layers, Workbox, planner client, and worker protocol | web README |
apps/api | Public endpoints, assistant extraction, deterministic dispatch, and tile proxy | API README |
apps/dashboard | Protected operational views and collector service calls | dashboard README |
packages/transit | Static data, compiler, planner image, map tiles, and inference tooling | transit README |
packages/collector | Vehicle ingestion, D1 records, transit intelligence, and road processing | collector README |
packages/contracts | Schemas shared across runtime boundaries | contracts README |
forecast | Offline forecasting experiments | forecast README |
tools/oxlint | Repository-specific code-quality rules | Oxlint README |
apps/docs | Markdown discovery, code blocks, and diagram rendering | docs README |
Static data and experiments
Static source and generated data live under packages/transit/data. The route-inference tool is under packages/transit/tools/route-inference. Experiments under docs/experiments describe work that may have informed the current system without becoming a production contract.
The feature-sliced documentation is the reader-facing entry point. The terminology page resolves words that are easy to use inconsistently across packages.