We run this stack ourselves
Both systems below run our own venues. That is deliberate: we would rather show you something carrying real money and real staff every day than a pilot we talked a client into.
Replacing a POS licence with a Telegram mini app
A venue paying a per-till licence for a commercial POS wanted off the subscription without going back to pen and paper. We rebuilt the till as a Telegram mini app.
In-house deployment — we run this venue ourselves.

The problem
Monthly per-till cost, a tablet that had to survive a bar, and no way to check takings without opening a back office on a laptop.
What we did
- Catalogue, pricing rules and staff records moved into Postgres as the single source of truth
- The till rebuilt as a Telegram mini app against an action-routed API
- A separate admin API with role checks resolved from the caller's Telegram account
- Requests signature-verified inside Postgres, every API call logged
- A nightly sales summary pushed to the manager's chat at 23:30
Where it landed
- Every staff phone is a till; no dedicated hardware to buy or break
- Takings visible on demand, and pushed nightly without anyone asking
- Admin actions gated server-side, so staff access does not depend on UI hiding
- No per-seat licence
Smaller systems, same approach
Customer service bot
A Telegram front desk that has been answering for the Automaton Labs shop since August 2025 — catalogue, orders and profile questions handled behind an authenticated boundary.
Catalogue shop mini app
The Automaton Labs storefront: catalogue, orders and customer profiles served as a Telegram mini app, with every request's identity verified before it is trusted.
Bilingual staff messaging
Type an instruction in English; the staff group receives it simplified, translated into Khmer, and read aloud as a voice note — because a message nobody understands is a message nobody follows.
Receipt capture and reconciliation
Photograph a receipt in Telegram and it is filed. Every three days the receipt folder is reconciled against the expense ledger: missing rows appended, duplicates and currency or date anomalies flagged, and a summary posted to the accounting group.
Tell us what keeps going wrong
A conversation costs nothing and often ends with us saying automation is not worth it for a given job. That is a useful answer too.
Twelve destinations, one approval step
Event promotion was not happening because posting to five apps by hand is a chore nobody picks up. We built a queue with a review step and let a schedule do the rest.
In-house deployment.
The problem
Events went unpromoted. Fully automatic posting was not acceptable — the venue's voice matters and an unreviewed post is a liability.
What we did
Where it landed