[ 01 / 04 ]

● Personal project · March 2026 – present

HabitAI

Role
Everything
Team
Just me
Released
July 2026
Status
On the App Store

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.

● The client never talks to Gemini
A

Flutter

iOS app

B

Cloud Function

Callable · europe-west1

  1. 01Verifies the Firebase Auth token
  2. 02Checks the weekly quota, in a transaction
  3. 03Rate limiting: 10 requests/hour
  4. 04Builds the prompt on the server
  5. 05Validates and parses the JSON response
C

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.

24Cloud Functions
4Layers
1Person
01Client

Flutter

Feature-first, three-layer architecture. Screens react to Firestore in real time and handle loading, error, empty and malformed AI response states.

02Server

24 Cloud Functions

Serverless Node.js backend on Google Cloud, with scheduled jobs through Cloud Scheduler and Pub/Sub.

03Data

Firestore

Deny-by-default rules and transactional per-user quotas.

04AI

Gemini 2.5 Pro

Behind a server-side proxy: token validation, rate limiting and prompts built on the backend, never on the client.