~/msh
back to projects

oss project

meeting-note-taker

Self-hosted Fireflies.ai - upload audio, get transcripts, summaries, and action items.

Architecture

apps/
  web/           React 18 + Vite + Tailwind + Shadcn UI + TanStack Query
  api/           Express + BullMQ workers + Socket.io + Drizzle ORM
packages/
  shared/        Zod schemas + types
infra/
  supabase/      Auth + Postgres + Storage
  docker/        Compose stack for local dev

Flow:

  1. User uploads audio → API persists to Supabase Storage, enqueues a transcription job in BullMQ.
  2. Worker pulls the job, runs Whisper (with Gemini fallback for long-form), streams progress events over Socket.io.
  3. On completion, summarization + action-item extraction runs against the transcript.
  4. UI lights up in real time — no polling, no page refresh.

Built primarily as a personal Whisper testbed - and because paying per-minute for meeting transcription felt wrong.