● Personal project · March 2026 – present
HabitAI
Your AI habit coach. You tell it what your life looks like, Gemini designs your plan, and the app spots your patterns and renegotiates with you when you slip.






Kick-off.
During onboarding you describe your routine and goals in plain language and Gemini returns a full plan: concrete habits, days of the week, reminder time and category.
Relapse.
When you miss a habit for three or more days, the AI doesn't nag: it suggests a concrete adjustment along with a diagnosis of why it's failing.
Flutter
iOS app
Cloud Function
Callable · europe-west1
- 01Verifies the Firebase Auth token
- 02Checks the weekly quota, in a transaction
- 03Rate limiting: 10 requests/hour
- 04Builds the prompt on the server
- 05Validates and parses the JSON response
Gemini 2.5 Pro
API key in Secret Manager
The Gemini API key lives in Secret Manager and never leaves the server. Prompts live on the backend too, so they can be fixed without shipping a new App Store release.
Flutter
Feature-first, three-layer architecture. Screens react to Firestore in real time and handle loading, error, empty and malformed AI response states.
24 Cloud Functions
Serverless Node.js backend on Google Cloud, with scheduled jobs through Cloud Scheduler and Pub/Sub.
Firestore
Deny-by-default rules and transactional per-user quotas.
Gemini 2.5 Pro
Behind a server-side proxy: token validation, rate limiting and prompts built on the backend, never on the client.