ReflectAI
A production journaling app for iOS and Android. A custom fine-tuned BERT sentiment model — published to Hugging Face Hub — is served via FastAPI to detect emotional patterns in journal entries in real time.
ML pipeline
Fine-tuned distilbert-base-uncased on a combined dataset of GoEmotions and a curated journaling corpus. The model outputs 8 emotion categories with confidence scores.
Architecture
React Native app
→ FastAPI (sentiment endpoint)
→ Hugging Face model inference
→ Supabase (entries, user profiles, emotion history)
The app sends journal text to the FastAPI endpoint on save. The response (emotion labels + scores) is stored alongside the entry in Supabase, powering the weekly emotion trend charts.
What I learned
Fine-tuning on domain-specific text matters more than model size. A fine-tuned DistilBERT significantly outperformed zero-shot GPT-3.5 on journal-style emotional nuance while being 10x cheaper to serve.