Convo is a repository for a real-time chat platform frontend.
Messages arrive over a WebSocket, the sidebar reorders itself as they land, and the ticks track each message from sent to delivered to read. Presence, typing indicators and unread state all update without a refresh.
Screenshots are of a local build running against seeded data — see Seeing it with data in it.
src/: React frontend using Vite and Tailwind CSS.
-
Project docs index:
docs/index.md -
Backend docs:
backend -
Frontend docs:
- Setup:
docs/frontend/setup.md - Architecture:
docs/frontend/architecture.md - State management:
docs/frontend/state-management.md - Testing:
docs/frontend/testing.md
This project follows Semantic Versioning and Conventional Commits.
- Automation:
- Frontend: Automated via
semantic-release.
- Frontend: Automated via
- Commit Format:
type(scope): description(e.g.,feat(ui): add jwt integration). Enforcement is handled viapre-commit.
For local setup, you can now use Turborepo to run everything concurrently:
- Setup:
- Install all dependencies:
pnpm install - Run development servers:
pnpm run dev - Frontend docs:
docs/frontend/setup.md
A fresh database gives you an empty sidebar, which makes it hard to tell whether anything works. The backend ships a seeder that fills one with a cast and conversations covering every visible state — unread, delivered, read, edited, deleted, and empty:
cd ../convo-backend
make seed-freshThen log in as demo / demo12345. Every seeded peer shares that password, so
signing a second browser in as maya is enough to watch typing, presence and
receipts move between two live clients.
- Global contribution standards:
CONTRIBUTING.md
This project is developed by:
- Abubakar Khawaja — Full Stack Developer (React + Django)
- Muhammad Suleman Butt — Full Stack Developer (React / React Native + Django)

