Roots POS
A point of sale that treats compliance as architecture, not paperwork — register, inventory, delivery, and seed-to-sale in one system.
[ FIG. 01 ] THE ROOTS DASHBOARD — GUIDED SETUP, PULSE AI, METRC, DELIVERY
Compliance was everyone's afterthought
Generic point-of-sale systems bolt cannabis rules on with tape and a prayer. But in this industry a missed waste record or a bad manifest isn't a bug — it's a license. Dispensaries needed a register that was fast at the counter and bulletproof with the state.
So compliance went into the foundation. METRC isn't an integration in Roots; it's part of how an order, a refund, and a delivery are defined. Get it right once, in the architecture, and every cashier gets it right by default.
Because it's structural, the same code serves a single storefront and a multi-location delivery operation — and a new state is a config file, not a quarter of engineering.
Fast at the counter, honest with the ledger
Compliance in the transaction
Refund a product and METRC's waste record updates inside the same database transaction — restock, destroy, or hold, decided per line. The till, the loyalty points, and the state all reconcile together, or not at all.
Built for the rush
An xstate-driven register that parks and recalls orders, a SELECT-FOR-UPDATE reservation system so two cashiers can't sell the same package, and a 15-state order lifecycle that survives the messiest Friday night.
Nine states, one config
State rules — METRC endpoints, tax categories, purchase limits — are versioned configuration, not hardcoded assumptions. Adding a state is a config change, not a rewrite.
An assistant that does the work
31 tool-calling functions place orders, adjust inventory, pull reports, and trigger METRC sync — role-gated, with undo on every write and scheduled commands for the recurring stuff.
Seed to sale, no gaps
- METRC sync every 6 hours + append-only audit trails that pass a state inspection
- Nine state configs (CA, MA, AK, CO, DC, NJ, OK, OR, MO) as versioned config
- SELECT-FOR-UPDATE package reservations with a 30-minute cart hold
- Blind physical-inventory audits that commit atomically — or roll back whole
- xstate register — park/recall orders, multi-tier tax, merchant custom fees
- Per-line partial refunds (restock / destroy / hold) with in-transaction METRC waste sync
- Delivery zones, vehicle fleet, and a driver app with live GPS + proof of delivery
- 31-tool AI assistant + three-tier analytics caching — sub-second at 250k orders
Built to not break
“In cannabis, “move fast and break things” ends with a revoked license. Roots moves fast and breaks nothing.”
CHRISTOPHER DELL'OLIO — FOUNDER, WEBJOINT