# 0005. Three ways to run, one codebase

- Status: Accepted
- Date: 2026-10-27

## Context

A small café with one tablet needs no server. A busier restaurant wants several devices sharing orders through a hub on its own network. Others prefer a server on a VPS. Maintaining separate products for each would split the project.

## Decision

One codebase supports three setups: a single POS device on its own (single-device mode, the default for a new install), devices plus a hub on shop hardware, and devices plus a self-hosted server anywhere. Every event and row carries `tenantId` and `outletId` from day one, even though the MVP has one of each.

## Consequences

- A single-device shop can grow into hub mode by uploading its existing log to a new hub, with no data loss.
- Code must not assume a single tenant or outlet, which keeps multi-outlet features and a future hosted fork possible.
