0009. Two apps sharing one core
- Status: Accepted
- Date: 2026-10-27
Context
Section titled “Context”Counter staff need a fast, native-feeling app with on-device storage that works offline, on the counter and on the floor. Managers need full-size screens for menus, staff and reports.
Decision
Section titled “Decision”There are two apps. The POS is an Expo (React Native) app for tablets and phones: iPad, iPhone, Android tablets and Android phones. Its layout adapts from a counter tablet in landscape to a phone held in one hand, so staff can take orders on the move (at the table, in a queue, at a pop-up stall). The back office is a React web app for managers on laptops, built to static files and served by the server. Both share the TypeScript packages/core.
Consequences
Section titled “Consequences”- Domain logic is written once, in TypeScript, and runs on devices, the server and in the browser.
- POS screens are designed for both tablet and phone sizes from the start.
- Native code is added only through Expo modules and config plugins.
- iOS devices (iPad and iPhone) never act as a hub, because iOS suspends background apps.
For AI tools: llms.txt ·llms-full.txtopenkedai.com