HabitFlow
Ecosystem to track personal habits and expenses: hybrid app for iOS and Android with Firebase, a Telegram bot, a Next.js landing page and a serverless REST API on AWS.
Keep the day's habits and expenses in one place, from the phone or from Telegram.
- Type
- Personal project
- Status
- Finished, updated in March 2026
- Areas
- Mobile, Backend, Cloud
- Technologies
- Ionic 8
- Angular 20
- Capacitor 8
- Firebase Auth
- Firestore
- Chart.js
- AWS Lambda (Python)
- API Gateway
- DynamoDB
- AWS SAM
- python-telegram-bot
- Next.js 14
Interactive demo
Screenshots
From the project's real code. The ones marked as sample data use simulated data instead of the backend or real video.
What it does
- App with habits and streaks, expenses by category, a dashboard and charts
- Login with Firebase Auth and data in Firestore, synced in real time
- Python Telegram bot that reads and writes the same Firestore: log habits, see stats and get reminders
- Separate serverless REST API with Lambda, DynamoDB and API Gateway
- API infrastructure as code with AWS SAM
What I learned
- Real-time data with Firestore and RxJS in Angular
- Serverless on AWS: Lambda, API Gateway, DynamoDB and CloudWatch
- Input validation and sanitisation in the backend
- Publishing a hybrid app with Capacitor
The AWS backend is no longer deployed because the account ended; the landing page is still live on Vercel. The app screenshots come from its real code with sample data instead of Firebase. In the demo, the habits, the writes and the bot messages are simulated.
Technical decisions
- Firebase Auth and Firestore
- Real-time data without running a server, and the same database for the app and the bot.
- Ionic with Capacitor
- A single codebase for iOS, Android and web.
- Telegram bot
- Log a habit in seconds without opening the app.
- Separate API on Lambda with API Gateway
- To practise serverless on AWS: Python functions, input validation and Firebase token verification.
- Infrastructure as code with SAM
- The API is deployed from a template, with nothing configured by hand.
How it's built
Click each piece to see what it does.
Angular 20 with Capacitor for iOS and Android. Dashboard with Chart.js charts and dark mode.
Firebase Auth for login and Firestore for habits and expenses, synced in real time per user.
python-telegram-bot with firebase_admin: logs habits, shows stats and sends reminders on the same data as the app.
Python Lambda with DynamoDB behind API Gateway, deployed with SAM. Not deployed at the moment.

