Grove
🌿 Join the GroveProduction-grade, multi-tenant real-time chat platform. Modular monolith with a documented path to horizontal scaling.
Stack
| Runtime | Node.js 22 + TypeScript (strict) |
| HTTP | Fastify v5 |
| Database | PostgreSQL 16 + Kysely |
| Client | Expo (React Native, Web, Electron) |
| Testing | Vitest, 104 passing against a real Postgres DB |
Grove runs its own binary-level protocol over raw ws with no socket.io or abstraction layer. The handshake (HELLO → IDENTIFY → READY), heartbeat/ACK zombie detection, session RESUME with a 500-event ring buffer, and staggered server-initiated RECONNECT for zero-downtime deploys are all built in-house.
Features
Rich text messaging, reactions, and persistent channels organised into servers that communities own and control.
Drop into voice instantly. Peer-to-peer audio with no downloads required. Screen sharing live, video coming soon.
Share a link and recipients land on a card showing the activity (Gaming, Coding, Watching), how long the session has been running, and how many people are already in. Guest join is three steps: click, type a username, join. No account required. For existing users it's one tap. The invite doubles as a soft scheduling signal: a low-friction "I'm around, come hang."
Servers, roles, invite codes, per-channel controls, moderation tools, and presence states. The infrastructure for communities of any size.
Other Notable Details
- UUIDv7 PKs: time-ordered IDs enable cursor pagination with no OFFSET scans
- Idempotency-Key on message sends prevents duplicate delivery on client retry
- Typing indicators, per-user rate limiting, moderator controls