All case studies
Logistics

LuyTrack

Parcel tracking for small couriers, including a Telegram bot their customers already use.

Engagement
Cambotix product
Industry
Logistics & Delivery
Year
2026
Our responsibility
Monorepo architectureWeb appsTelegram botShared API

The challenge

Small Cambodian couriers coordinated deliveries in Telegram, sending customers screenshots of handwritten manifests. Every status question became a message to a human. Off-the-shelf logistics platforms priced for fleets, not for an operation with six drivers.

Our approach

We worked with the existing habit instead of fighting it. Customers were already in Telegram, so the bot became a first-class client of the same API as the web apps, not just a notification add-on. A Turborepo monorepo lets four surfaces share types and API clients, making maintenance viable for a small operator's budget.

What it had to achieve

  • Let a customer check status without messaging anyone
  • Meet customers in Telegram rather than forcing an app install
  • Give dispatch one screen for assignment and status
  • Keep it affordable for a very small operator

Architecture

The decisions that made the rest possible.

01

Telegram bot as a full API client

The bot reads and writes through the same endpoints as the web apps, so a customer can complete a tracking task in Telegram without a parallel implementation to maintain.

02

Turborepo with shared contracts

Customer app, driver app, admin portal, bot and API share types and clients. An API change surfaces as a type error across every surface immediately.

03

Status transitions as the single source of truth

Parcel state changes are recorded events; every surface renders from that log, so Telegram, web and admin can never disagree.

Built with
Next.jsNode.jsPostgreSQLTelegram Bot APITurborepo

What we delivered

  • Customer tracking web app with live parcel status
  • Driver web app for assigned parcels and status updates
  • Admin portal for route assignment and operations overview
  • Telegram bot for tracking inside the app customers already use
  • Shared API with typed clients across all surfaces

Outcomes

What changed once it was live.

  • Customers self-serve status instead of messaging dispatch
  • Tracking works where customers already are, with no install step
  • Dispatch assigns routes from one screen rather than a group chat
  • Four surfaces stay in sync because they share one contract

What we would do differently

Every project teaches something. Publishing it is how you tell whether a team is reflecting or just selling.

  • Building the Telegram bot as a real API client made adoption effortless because we supported the existing habit instead of replacing it.
  • The monorepo was overhead on day one and the reason the project stayed maintainable by month three.

Let's find out if this is worth building.

A 45-minute discovery call, free. You describe the problem, we tell you honestly what it takes, what it costs, and whether you should build it at all.