Back to case studies
AI for BusinessAI-Powered Business Automation

Ascensus — voice-first AI mindfulness companion with spoken reflections

Client Ascensus
Duration 8 weeks (MVP)
Type AI mindfulness mobile app (Flutter)
Flutter (iOS + Android)GPT-4 via LangChain (reflection)AWS Polly (neural TTS)NestJS + REST APIAWS ECSAWS S3 (audio + assets)DynamoDB (per-user journal)Speech-to-text
Ascensus
Ascensus
Ascensus
Ascensus

Constraint

The box they were trapped in

People who want a quiet space to reflect don't want another productivity tracker asking what they shipped today. The client wanted a mobile mindfulness app where the AI listens, responds in a calm voice, and stays out of the user's way — voice-friendly, low-pressure, no streak counters, no engagement nudges. The hard part was making an AI app that earns daily use without the dopamine machinery most apps lean on.

Approach

How we attacked it

Flutter mobile app for iOS and Android. The user journals in text or by voice; speech is transcribed and the prompt goes to GPT-4 through LangChain, which generates a "Master Vision" reflection in the app's calm tone. AWS Polly speaks the response back so the user can listen with their eyes closed instead of reading. NestJS REST backend on AWS ECS, S3 for the audio and assets, DynamoDB for per-user journal history. A lightweight intentions and goals layer sits beside the journal; a community feed surfaces shared intentions without a public-comments dynamic.

Decisions

What we picked, and what we rejected

01

Voice journaling and voice replies as first-class, not bolted on

A mindfulness app where voice is a secondary feature feels like a journaling app with TTS tacked on. We treated speech-in and speech-out at the same fidelity as the text path — STT through to GPT, GPT through to Polly — so the user can journal with their eyes closed and still get the response in their ear.

02

GPT-4 + LangChain for the reflection layer

The reflection paragraph is the product. GPT-4 generates it in the app's tone via LangChain, which keeps the prompt scaffolding modular — when a calmer-tone model lands, we swap the layer underneath without rewriting the app. The LangChain wrapper is doing real work here, not LangChain-for-its-own-sake.

03

AWS Polly over a third-party voice API

Polly's neural voices land in the right tone for a calm reflection, billing is predictable per character, and there's no cold-start on the first call of the day. The third-party voice market shifts every quarter; Polly's the one that's quietly fine across the whole feature.

04

No streaks, no notification ladders, no comment threads

Streaks and engagement nudges work — they're also the exact dynamic the product is supposed to stay away from. Comments would turn the community feed into a thread vortex. We left that scaffolding out by design and accepted slower growth than a habit app's curve. That's the product.

Trade-off

What we didn't build

We deliberately did not build a habit-tracker on top of this. Streaks, badges, push-ladder notifications all work — and all are exactly the dynamic the product wanted to stay out of. So engagement scaffolding is intentionally thin. The trade-off is slower growth than a habit app's curve; the gain is the product the client actually asked for, one that doesn't badger the user back in. We also kept the community layer one-way (shared intentions visible, no replies) to avoid the comment-thread vortex.

Outcome

What changed after we shipped

Mobile app shipped on Flutter for iOS and Android in eight weeks. Users journal by voice or text, receive a spoken reflection from GPT + Polly, and track their personal-growth intentions in a feed that isn't optimized for streaks. The voice path works at the same fidelity as the text path, which is the actual product premise.

Talk to us

Have a similar project in mind?

Tell us what you're working on. We'll let you know whether it's a fit.