About

Pensive is an AI coaching app you talk to rather than type at. Five minutes of conversation a day walks you through structured psychological exercises drawn from CBT, mindfulness, Stoic philosophy and positive psychology.

Being voice-first shaped the architecture. Speech-to-text and text-to-speech sit in the request path, so latency and streaming mattered far more than they would in a chat interface.

I worked on it as a full-stack engineer from July 2024 to February 2025, across the Flutter client and the NestJS and gRPC backend, and was the project's largest contributor by commit count. It is live on the App Store and Google Play.

Website: Pensive

Key Features

  • Voice-first coaching. Spoken conversation with an AI coach rather than a text chat, using streaming speech-to-text and TTS.
  • Evidence-based exercises. Structured sessions grounded in CBT, mindfulness, Stoic practice and positive psychology.
  • Daily five-minute format. Short guided sessions built to be sustainable rather than demanding.
  • Goal setting and journaling. Values discovery, strengths exploration and habit tracking, all through conversation.
  • Crisis handling. A dedicated path surfaces lifeline referrals when a user expresses suicidal ideation.
  • Multi-provider LLM routing. OpenAI, Gemini, Groq and Together AI sit behind one interface, with ElevenLabs handling voice.

Tech Stack

  • Flutter
  • Dart
  • gRPC
  • Protocol Buffers
  • NestJS
  • TypeScript
  • Socket.IO
  • Firebase Auth
  • Firestore
  • OpenAI GPT-4o
  • Google Gemini
  • Groq
  • Together AI
  • ElevenLabs
  • Google Cloud Speech + TTS
  • RevenueCat
  • Stripe
  • SendGrid
  • GCP
  • Docker
  • Envoy
  • PostHog
  • Sentry

Video

Screenshots