Tawk is a realtime communication suite with video calling and media sharing feature, and scalable message pipeline built my Apache Kafka and Redis Pub/Sub architecture
| Layer | Tech |
|---|---|
| Framework | Next.js, Express.js |
| Database | PostgreSQL with Prisma ORM |
| Pub Sub amd Messaging | Redis, Kafka |
| Object Storage | [AWS S3] |
| Video Call | Mediasoup |
| Authentication | Built from scratch |
| UI | TailwindCSS + ShadCN/UI + TypeScript |
| Deployment | Vercel (frontend ) , EC2 + nginx (backend) |
Follow these steps to set up Tutorr locally on your system.
git clone https://github.com/Tiru-99/Tawk
cd tawk You need to create .env files in the following locations:
# Env for frontend folder
NEXT_PUBLIC_BACKEND_URL =http://localhost:5000 or your prod link
NEXT_PUBLIC_BUCKET_NAME = your s3 bucket name # Make sure the bucket is public
# Env for backend folder
DATABASE_URL=
JWT_SECRET =
FRONTEND_URL =http://localhost:3000
FRONTEND_URL_2=http://localhost:3000/call/234
AWS_ACCESS_KEY=
AWS_SECRET_ACCESS_KEY=
REDIS_PASSWORD=
REDIS_HOST=localhost
KAFKA_BROKER=
REDIS_PORT=6379
REDIS_URL=
NODE_ENV=development # or "production" if in prod
ANNOUNCED_IP= your device's public ip
# Run this command at both frontend and backend folder to run the project
npm install
npm run devThis project is licensed under the MIT License — see the LICENSE file for details.