Manny
Project information
- Category: Web
- Client: Personal Product
- Project date: 30 October, 2026
- Project URL: https://staging.meetmanny.live/
Manny: a finance assistant that meets you where the money moves
The problem
For a while now I've managed my money with a spreadsheet, some Make.com automations, and the SMS alerts my banks send every time money moves. It works, but only because I'm the kind of person who enjoys stitching tools together. Most people aren't. They get the alert, glance at it, and move on. By the end of the month the budget is fiction.
Most budgeting apps are built for markets with open banking APIs. In Nigeria, the most reliable record of a transaction is still the SMS your bank sends you. So that's where Manny starts.
What Manny is
Manny is a personal finance app for Nigerian salary earners. It has two parts that carry equal weight:
- A Telegram bot that picks up your bank SMS alerts and asks you, in plain conversation, what the transaction was. Classifying a transaction takes seconds, in the moment it happens.
- A web dashboard where you plan: set up your budget, manage categories, and see where your money actually went.
The bot handles the moment money moves. The dashboard handles the thinking.
How the budgeting works
Manny uses a simple structure. Your income flows into a pool, and the pool splits across four tiers:
- Off the top: tithes, giving, taxes, anything that leaves first
- Future: savings and investments
- Essentials: rent, food, transport, bills
- Lifestyle: everything else
Each tier holds categories, and every transaction lands in a category. Regular income (like salary) gets split across the tiers by percentage. One-off income (a bonus, a side gig) lands as unassigned money you decide what to do with. That separation matters, because if a bonus counted toward your ratios, every tier's ceiling would quietly inflate and your budget would stop meaning anything.
Built on real accounting
The rule I set for myself from day one: ship the thing that's correct about money.
Under the hood, Manny runs on a double-entry ledger, the same principle accountants have used for centuries. Every entry records where money came from and where it went, so an unbalanced entry can't exist by design.
On top of the ledger sits a separate plan layer. The ledger records what happened and never changes. The plan records what you intended, and you can edit it freely. The two never mix. Changing your budget can never rewrite your history.
Tech stack
- Frontend: React, TypeScript, Vite, Tailwind, shadcn/ui
- Backend: FastAPI (Python), Alembic for migrations
- Database: Postgres
- Infrastructure: Google Cloud Run, Cloud Tasks, Terraform, GitHub Actions
- Bot: Telegram, running on webhooks inside the main API
- SMS capture: forwarding tools for now, with a native Android app planned for automatic capture
Where it's at
Auth works (email, Google, and linking your Telegram account), staging is live, and the SMS ingestion pipeline is wired up. The next milestone is the full loop: real money moves, the SMS lands, I classify it in Telegram, and I watch it draw down my budget on the dashboard.
After that, a mobile app with automatic SMS capture on Android.
Building in public
I'm documenting the whole build, including the mistakes. Some of the best lessons so far came from getting things wrong: why long-polling doesn't work on serverless, why auditing a UI against an empty database lies to you, and why the one stored number in an otherwise calculated system is the one most likely to drift.
More write-ups coming as Manny takes shape.