For customers
Order, pay, and watch it arrive
Browse the menu, customize a drink, pay from an in-app wallet, and follow the courier live on the map — with push notifications that deep-link straight to the order.


Est. 2025 · One codebase, two roles
A full coffee shop in your pocket — customers order and track drinks in real time, managers run the store from an analytics dashboard. All SwiftUI, all Firebase, zero custom backend.

Firestore snapshot listeners push every status change to the screen the moment it happens — no pull-to-refresh.
Top-ups, payments, and refunds all run through db.runTransaction() — the ledger never goes inconsistent.
Watch your order travel on a MapKit route from the branch to your door, updated in real time.
Only customers who completed an order can rate it — every review is backed by a real purchase.
CoreLocation-powered branch finder with distances, opening hours, and per-store ordering windows.
Brown, strawberry, matcha, or oreo — a semantic token system switches the whole app's theme at runtime.
For customers
Browse the menu, customize a drink, pay from an in-app wallet, and follow the courier live on the map — with push notifications that deep-link straight to the order.


For managers
Accept and advance orders in real time, watch sales analytics roll in, set per-branch ordering hours, and manage the menu — same app, manager role.








ViewModels never import Firebase — a protocol layer keeps the data source swappable and the views testable.
Dev, SIT, UAT, and Prod each get their own Firebase project, switched by build configuration.
Customer and Manager share one codebase — tabs filter by role with no branching in the view hierarchy.
The whole shop is open source — clone it, point it at your own Firebase project, and brew.