Inspiration

A lot of inspiration on Simon's words. I myself have done a bunch of courses on coaching and I know it's value, but I have to confess that I don't take the time to setup my own GPTAgent or anything else. I'm constantly feeding context into AI to get better results.

The AI certainly has the knowledge necessary to apply great coaching, but it's probably buried in a massive amount of data with different weights. The idea of having a easy to use tool that helps you decide what even to think. Bench was born from that gap: what if the prompt engineering was already done, and you just had to talk?

What it does

Bench gives you a bench of specialized AI coaches. Each one trained in specific frameworks and coaching methodologies. A productivity coach applies GTD, Deep Work, and Atomic Habits. A mindset coach draws on growth mindset and cognitive reframing. Instead of one generic AI, you pick the right specialist for the moment.

The experience is voice-first: tap the mic and talk. Sessions end with an Outcome Card, one Insight, one Decision, one Next Action, so every conversation produces something concrete. An onboarding flow profiles your values, decision style, and energy level. A marketplace lets you explore more coaches, including ones built in partnership with creators. The paywall triggers at natural moments, after you've already experienced value, powered by RevenueCat.

How we built it

Vibe coding. It's amazing how much we can build with these tools these days. I've been using Claude Code like crazy in the last 10 days. Currently at 80% of my weekly quota in the Max x20 account!

Mobile: React Native with Expo. Custom native dev builds (no Expo Go) for speech recognition, haptics. Offline-first architecture with a local SQLite database.

Backend: Fastify + TypeScript on Railway. Chat streams via SSE through OpenRouter (Claude 4.5 Sonnet but you can pick any model). A 12-parameter agent template system defines each coach's identity, philosophy, frameworks, coaching moves, voice, rituals, and guardrails, composed into a system prompt server-side via a prompt composition engine.

RAG Pipeline: Every message triggers four parallel vector searches (pgvector, 1536-dim embeddings, I had to search for that) across memories, so coaches remember what you've discussed and build on it.

Context Pipeline: The system prompt assembles the coach template + psychological profile (Big Five, Schwartz values, DISC) + Wheel of Life scores + RAG results + time-of-day awareness, all before the LLM sees a single message.

Monetization: RevenueCat with webhook sync. Free tier: 20 messages/day, 6 coaches max. Plus tier unlocks unlimited everything. Paywall surfaces contextually at natural friction points.

Stack: React Native, Expo, Fastify, TypeScript, PostgreSQL + pgvector, Supabase, OpenRouter, RevenueCat, PostHog, i18next.

Challenges we ran into

Setting up React Native was hard at first, but Expo made it really easy.

Prompt composition at scale. Defining a coach isn't just a system prompt, it's 12 interdependent parameters (identity, philosophy, frameworks, coaching moves, voice profile, rituals, guardrails...). We built (me and Claude) a structured template schema with JSONB columns and a composition engine that assembles them into a coherent prompt, with backwards compatibility for raw prompts.

Making AI responses feel conversational. LLMs default to walls of text. We had to tune response length dynamically. a 3-word message gets 1-2 sentences back, a paragraph gets a proportional response. So sessions feel like talking to a real coach, not reading an essay.

Offline-first with real-time streaming. SSE streaming for chat, but also optimistic local updates with a mutation queue for when connectivity drops. Coordinating cache-first loads with API refreshes without flash-of-content bugs took multiple iterations.

Onboarding that doesn't feel like a survey. 10+ profile dimensions (values ranking, decision style, energy level, Wheel of Life) had to feel natural, not clinical. The "wow moment", where the Wheel of Life Coach speaks and analyzes your self-assessment with a real voice, was critical to making it worth the setup.

Accomplishments that we're proud of

First app published! After ten years doing Android development, this is proudly my first app. It's an amazing experience and I plan to iterate on it a lot.

Real people using it and loving it! This is amazing!

Tweaking onboarding with Wheel of Life Coach wow moment. Had fun making this first interaction great.

Ship-ready on the App Store with TestFlight builds, RevenueCat integration and soon Android!

What we learned

Building is now fun again. A lot of orchastration. LLM setup. App monetization mechanism

Building an AI coaching product taught us that the prompt is the product. The difference between generic AI advice and genuinely useful coaching isn't the model. Psychological profiling, framework databases, RAG-powered memory. A coach tweaked to know your values, remembers your last decision feels fundamentally different from ChatGPT.

I also learned that monetization works best when it's invisible until it's obvious. Showing value first (the Wheel of Life analysis, the Outcome Card) and then surfacing the paywall at natural friction points converts far better than gating the experience upfront.

Finally: voice-first changes everything. When users can speak their problems instead of typing, they share more context, the coaching goes deeper, and sessions feel real.

What's next for Bench - Put the Right Coach into Play

  • Coach Creator Studio - let anyone build and publish coaches to the marketplace with a no-code editor. Possibly earning revenue share on premium coaches, but I need to check legal on that.
  • Proactive coaching - smart nudges based on pending commitments, consistency patterns, and health data trends (foundation already built)
  • Android launch - easy to do it with React native
  • Deeper integrations - Google Calendar awareness, Todoist/Linear task sync, Notion, Health, Oura, and many more!
  • Coach-to-coach handoffs - meta-coaches that orchestrate between specialists (e.g., a decision coach hands off to a productivity coach once the decision is made)

Built With

Share this project:

Updates