# 0012. Cheap by design

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

## Context

Small shops cannot pay for large servers or managed databases. A hosted fork would also need to fit many shops onto small machines.

## Decision

Each tenant gets one SQLite file (`better-sqlite3`, WAL mode). The server has no required external services: no Postgres, Redis, queue or object storage. Backups can optionally stream to any S3-compatible storage. A resource budget (image size, memory, idle CPU, cold start, bytes per order) is enforced in CI by `scripts/budget.ts`.

## Consequences

- A 512 MB / 1 vCPU VPS, a Raspberry Pi or a NAS can run a shop.
- Tenants are easy to back up, restore and move individually, and cannot leak into each other through a missing filter. Rows still carry `tenantId` for exports and safety.
- Changes that need more memory or image size must justify it in their pull request.
