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

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.
- 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
- Next.js
- React
- TypeScript
- TipTap
- Yjs (CRDT)
- WebRTC
- Firebase
- NextAuth
- OpenRouter
- Docker
Collaborative two-person build