About the project
SPLT is a Telegram bot for couples and small groups that turns an ordinary shared chat into an automatic shared-expense ledger. People log spending in plain language right where they already talk — the bot parses it, splits it, and keeps a live balance of who owes whom.
Task
Make splitting expenses effortless inside the place people already chat: no separate app to install, no forms to fill — just type a line, snap a receipt, or send a voice note, and get an accurate running balance.
What we did
We built the bot on a clean hexagonal architecture: a pure splitting engine — balances, debt simplification, integer minor-unit (kopeck-precise) rounding — is fully decoupled from the Telegram transport, so the same core can later power other clients without a rewrite.
Free-text entries run through a fast deterministic parser with an LLM fallback for tricky phrasing and word-numbers; it also understands repayments ("returned 5000") as settlements, not new expenses. Receipts are read QR-first with a vision-model fallback that lifts the total straight from a photo. Voice notes are transcribed and pushed through the very same pipeline. Access is restricted by an allowlist, and API spend is capped at the provider level.
Stack
Result
A production bot that logs an expense in seconds — from text, a receipt photo, or a voice message — auto-categorizes spending, tracks balances in real time, and produces monthly category breakdowns, all inside a single Telegram chat. The decoupled engine, covered by unit tests, is ready to be reused by a future app on a shared backend.