Back to projects

Rev Insightsrev.com

LLM chat for research and legal customers that allows users to get useful insights from their files. It lives inside the rev.com ecosystem so they can pull files from other modules like transcripts, meetings, depositions, and more.

drawing Empty chat

Why did we build this?

Customers already had a lot of content inside Rev — transcripts, meeting recordings, depositions, and uploaded documents — but no simple way to ask questions across that material. Insights gives them a chat interface that can pull those files in context, so they can search, summarize, and dig into evidence without leaving the product or stitching tools together by hand.

We also needed a competitive answer to the wave of standalone LLM chat products. Legal and research buyers were starting to expect AI-assisted workflows, and without a first-party experience inside Rev we risked losing that engagement to external tools that did not understand our content model or customer workflows.

drawing Document Editor

My participation

Rev already has a strong engineering structure, so this was a very typical engineering team. We had a UX designer, a PM, a tech lead, and 3 senior engineers. I had the role of senior engineer and participated in all aspects of the product.

The tech stack

It runs mainly on Node + React + TypeScript, mounted inside the dashboard SPA at /insights.

Front-end

  • React 18 + TypeScript
  • React Router
  • Apollo Client + GraphQL (graphql-codegen → typed React Apollo hooks)
  • Zustand (local UI/state stores)
  • @revdotcom/design-system + Tailwind CSS v4 + @revdotcom/icons
  • react-markdown + remark/rehype (chat markdown rendering)
  • SSE streaming via @microsoft/fetch-event-source
  • Uppy + AWS S3 (file uploads)

Backend (paired services, not in this package)

  • .NET / FoxTranslate Services/Insights/
  • Chat / summarize in Services/AdvancedSummaries/ (revdotcom-ai)
  • YARP reverse proxy to rev-studio microservice (/app/insights/public/api/*)
  • GraphQL for non-streaming ops; SSE for token streaming chat

Testing & tooling

  • Jest + Testing Library
  • Playwright (E2E POMs / seeding flows)