0005. Three ways to run, one codebase
- Status: Accepted
- Date: 2026-10-27
Context
Section titled “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
Section titled “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
Section titled “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.
For AI tools: llms.txt ·llms-full.txtopenkedai.com