Flow

● ABOUT

a full-stack real-time chat app with WebSocket-based messaging, unique room invite codes, and Google OAuth via NextAuth.js.


● WHY

wanted to understand how real-time systems work under the hood. so i built one from scratch.


● FEATURES

  • — sub-100ms message delivery
  • — room subscriptions and typing indicators
  • — Google OAuth via NextAuth.js
  • — TurboRepo monorepo with shared Prisma package

● IMPACT

  • — supports multiple concurrent chat rooms simultaneously
  • — unique invite codes eliminate unauthorized room access
  • — persistent chat history survives server restarts
  • — monorepo cuts shared code duplication across services

● ARCHITECTURE

  • — WebSocket server handles real-time bidirectional events
  • — Next.js frontend with Zustand for client state
  • — Prisma ORM over PostgreSQL for message persistence
  • — TurboRepo monorepo — frontend, backend, shared db package
  • — NextAuth.js handles Google OAuth session management

● STACK

Next.jsTypeScriptNode.jsExpressPostgreSQLPrisma