Case study
Personal Finance API — pulling a domain out of a Telegram bot
An income and expense tracker that started as bot handlers and became a FastAPI service with the bot as one of its clients.
- Role
- Solo project
- Timeline
- Oct 2025 — Nov 2025
- Location
- Tashkent, remote
- Stack
- FastAPIPostgreSQLSQLiteAiogramRender
The problem
I had already built a Telegram bot that tracked income and expenses, but all of its logic lived inside the bot handlers. Nothing else could reuse it, and every new feature meant editing the bot.
What I built
- Pulled the domain out into a FastAPI service with its own schema for users, transactions and reporting.
- Rewrote the bot as a client of that API, so the handlers only deal with Telegram while the rules live in one place.
Result
- 700+ users during testing.
- Bot and API can now evolve separately; a second client would not need new business logic.