Realtime public/private chat rooms built with FastAPI WebSockets and SvelteKit.
Nullroom is a realtime chat-room platform designed around temporary rooms, simple joining, user presence, and fast message delivery.
- Public and private rooms
- Room creation and joining
- Room capacity limits
- Realtime WebSocket messaging
- User presence
- Host-based room ownership
- Message status handling
- SvelteKit frontend
- FastAPI backend
Backend:
- Python
- FastAPI
- Pydantic
Frontend:
- SvelteKit
- TypeScript
- TailwindCSS
- Vite
Frontend connects to the FastAPI backend through a WebSocket endpoint. The backend manages active users, rooms, room membership, and message broadcasting in memory.
| Event | Direction | Description |
|---|---|---|
| join_room | Client -> Server | Join an existing room |
| create_room | Client -> Server | Create a room |
| send_chat_message | Client -> Server | Send message |
| room_joined | Server -> Client | Confirms room joined |
| user_joined | Server -> Client | Broadcasts user joined |
| user_left | Server -> Client | Broadcasts user left |
| message_sent | Server -> Client | Broadcasts chat message |
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
fastapi runcd frontend
npm install
npm run dev
npx vite --host 0.0.0.0 --port 5173- Rooms are stored in memory
- Messages are not persisted
- Designed as a realtime architecture/demo project
- Host moderation actions
- Deployment