Skip to content
Live2025

BroMind

AI companion for honest self-reflection.

Overview

What it is.

BroMind is a minimalist AI companion built around one idea: an honest, brotherly conversation. It's not therapy and not a motivational coach — it's a calm space to think out loud and check in with yourself.

The product is intentionally narrow: a chat interface, daily check-in prompts, and a memory of past sessions. No gamification, no streaks, no dopamine loops. The goal is clarity, not engagement.

Stack

Built with.

Frontend

  • Next.js 15 (App Router, RSC)
  • React 19
  • TypeScript
  • Tailwind CSS
  • Lucide React

Backend

  • Supabase (Postgres, Auth, RLS, Realtime)
  • @supabase/ssr
  • Zod

AI

  • OpenRouter gateway
  • Claude Sonnet 4 (chat)
  • Claude Haiku 4.5 (background tasks)
  • Whisper (transcription)

Infrastructure

  • Vercel (serverless, edge, cron)
  • Custom domain bromind.app

Realtime

  • Server-Sent Events (SSE)
  • Native ReadableStream

Decisions

Why these choices.

Why OpenRouter instead of calling Anthropic directly?

OpenRouter gives me one API for multiple models, automatic fallback from Sonnet to Haiku when needed, and the freedom to swap providers later without rewriting code. For a solo project that needs to stay reliable and cheap, that flexibility outweighs going direct.

Why Server-Sent Events instead of WebSockets?

BroMind only needs one-way streaming: the model talks, the user reads. SSE is one-directional by design, lighter than WebSockets, and supported natively by the ReadableStream API — no extra library, no socket server. The simpler tool wins.

Why Supabase as the backend?

Postgres, auth, row-level security, and realtime in one platform. With @supabase/ssr handling cookie-based auth in Next.js, I get a production-grade backend without managing servers. Time saved = features shipped.

Try it

See it in action.

BroMind is live at bromind.app — try a session yourself.