All projects & case studies
CollaborationReal-TimeSaaS

Collaboration · Real-Time

Pivot

Open collaboration platform — Notion-style docs, real-time messaging, and LiveKit audio/video in one cross-platform product (web, iOS, Android, desktop).

Pivot
Led development of cross-platform features, delivering a consistent experience across Web, Mobile, and Desktop
Built a reusable design system and component library that accelerated feature delivery and improved product consistency
Designed a flexible block architecture powering documents, databases, canvases, goals, events, and 50+ blocks

Overview

Docs-grade collaborative editing, sub-second presence, and reliable audio/video in one product across web, iOS, Android, and desktop.

The challenge

Teams and communities juggle separate tools for documents, chat, and calls — context is scattered and real-time collaboration breaks across apps and devices. Delivering Google-Docs-grade collaborative editing, sub-second presence, and reliable A/V across four platforms demands a backend that stays consistent and observable in production.

The solution

Service-oriented backend (~20 microservices) on AWS EKS with protobuf-first Connect-RPC APIs, a NATS JetStream event bus, and Temporal for durable workflows. Polyglot persistence (Aurora Postgres, Cassandra, Valkey, Turbopuffer, S3). Realtime layer: custom Pilot (WebSocket) + Dealer (pub/sub fan-out); collaborative block editing via Yjs CRDT merged server-side. A single React Native + Expo codebase (Tauri on desktop) serves all four platforms.

What we delivered

  • Across the stack — Go/TypeScript microservices, realtime systems, React Native frontend
  • Realtime collaboration on Pilot/Dealer: presence, typing indicators, live cursors, Yjs block editing
  • Connect-RPC/gRPC services with shared protobuf contracts, backed by NATS event streams
  • Cross-platform UI including the Lexical + Yjs collaborative editor
  • LiveKit A/V (rooms, recording, transcription) and AI features (RAG/vector search, summaries)
  • EKS + Argo CD pipeline: affected-service deploys, OpenTelemetry, integration tests

Architecture

Clients (React Native) — Web · iOS · Android · Tauri desktop
        │
Edge / API — friend (Connect-RPC) · visa (auth) · pilot (WebSocket) · rest
        │
AI / Search — asimov · quest
Domain (Go) — facebox · messenger · blockhead · blobby · buzzer · stagehand · uconf
Realtime — dealer (pub/sub fan-out) · fusion (Yjs merge)
        │
NATS JetStream + Temporal
Aurora Postgres (Ent + Atlas) · Cassandra (high-write) · Valkey · Turbopuffer
AWS EKS — Helm · Argo CD · Karpenter · Cilium mTLS · OTEL → Axiom

Key engineering decisions

  • Service-oriented from day one — one database per service, hard domain boundaries
  • Protobuf as single contract for Connect-RPC and NATS events (Go + TypeScript clients)
  • Split realtime: Pilot (connections) vs Dealer (fan-out) for independent scaling
  • Yjs CRDT for collaborative editing; Friend/RPC as source of truth over ephemeral Pilot state
  • Polyglot persistence: Postgres relational, Cassandra high-write, Valkey cache, Turbopuffer vectors
  • One React Native codebase for web, iOS, Android, and Tauri desktop

Tech stack

React NativeGoRustConnect-RPC / gRPCNATS JetStreamTemporalLiveKitYjs / LexicalPostgreSQL / AuroraAWS EKS

Engagement

2022 – present · Product Engineer with Meridian University

Results

~20

Microservices

4 (web, iOS, Android, desktop)

Client platforms

50+

Blocks

Helped build a modern collaboration platform that enables organizations to communicate, collaborate, and manage work within a single scalable product — Docs-grade editing, messaging, and A/V on a production-observable microservice backend.

Lessons learned

  • At this scale, reliability is a feature: strict service boundaries, protobuf contracts, and treating realtime state as ephemeral (RPC as source of truth) keep multiplayer fast and correct.

Have a hard problem like this?

Let's talk about what you're building.