All projects
2025Conflict-free real-time docs for developers

Axelot

A real-time collaborative writing platform where developers co-edit rich technical documents with live cursors, AI assistance, and one-click publishing.

www.axelot.io
Axelot screenshot

Most collaborative editors either lock you into one vendor or break the moment two people type at once. Axelot does the hard version: many writers editing the same technical document at the same time, conflict-free, with live presence.

A TipTap rich-text editor is bound to a Yjs CRDT so concurrent edits converge on their own. Documents sync directly between browsers over a WebRTC peer mesh, with Firestore holding durable snapshots and metadata, keeping live editing fast while still persisting state.

The hard part is the seams. NextAuth handles Google, GitHub, and bcrypt-hashed email/password sign-in with Zod validation and enforced email verification, then mints a Firebase custom token server-side into the session so the browser can talk to Firestore securely. A trending feed blends logarithmic view scaling with recency and activity decay, recomputed by a CRON_SECRET-protected Vercel cron job that prioritizes active documents. AI editing actions stream completions through an OpenRouter proxy.

The result is a production-deployed platform that ships as a multi-stage Docker image. Axelot was a collaborative two-person build, and I owned core parts of the system end to end.

highlights
  • Conflict-free concurrent editing: a Yjs CRDT bound to TipTap, synced browser-to-browser over a WebRTC peer mesh
  • Server-side Firebase custom tokens minted into the NextAuth session, so the browser hits Firestore under real security rules
  • Trending feed weighting logarithmic views against recency and activity decay, recomputed by a CRON_SECRET-guarded cron
  • In-editor AI streaming token by token through an OpenRouter proxy; tables, KaTeX, Mermaid, and Shiki code
  • Durable Firestore snapshots behind the live mesh, shipped as a multi-stage Docker image
built with
  • Next.js
  • React
  • TypeScript
  • TipTap
  • Yjs (CRDT)
  • WebRTC
  • Firebase
  • NextAuth
  • OpenRouter
  • Docker
team

Collaborative two-person build