Concorde
Concorde is a TypeScript chat app I built with an Express backend, a browser client, SQLite persistence, and WebSocket connections.
Notes
- Models users, servers, channels, messages, memberships, and invites.
- Stores chat state in SQLite.
- Uses bcrypt for password hashing and JWTs for auth.
- Shares token verification between HTTP routes and WebSocket sessions.
- Handles broadcasting, presence updates, reconnects, and heartbeat checks.
What I Took From It
The interesting part was making the HTTP and WebSocket sides of the app agree with each other. Auth, persistent state, and connection lifecycle bugs become much more obvious once there are multiple browser tabs connected at once.
Links
- GitHub: github.com/alex-k03/concorde