InteractPro
CRDT collaborative editor and RAG semantic search over chat, end-to-end type-safe.

What it is
A team chat app with two things bolted on that most chat apps do not have: a collaborative document editor that several people can type in at once, and a search that actually understands what you asked.
The editor
The editor uses Yjs, which is a CRDT. That means two people editing the same line at the same time both keep their work, and the merge happens without a server deciding who wins. It holds up at 100+ concurrent users with about 8ms sync latency over WebSockets.
I also persist snapshots, so if someone drops off mid session they come back to the document as it was rather than to an empty page.
The search
Keyword search stops being useful once a channel has a few hundred messages in it. You remember the idea, not the words. So I built a RAG pipeline instead: Gemini embeddings stored in PostgreSQL with pgvector, indexed using HNSW. It pulls answers from 200+ messages in under 100ms and cites the messages it used.
Keeping it honest
The whole thing is type safe end to end through tRPC, so the client and server can never disagree about an API shape. That removes one class of bug but says nothing about behaviour, so I wrote 71 server side tests with Vitest and Supertest to cover the rest.
What I would fix
Snapshot frequency is a fixed interval right now. It should adapt to how active a document is, otherwise quiet documents get snapshotted for no reason and busy ones lose more work than they need to on a crash.