A modern, feature-rich real-time communication platform built with Next.js, offering seamless messaging, voice, and video capabilities.
- Instant Messaging - Lightning-fast real-time messaging powered by Socket.io
- Rich Media Support - Share images and PDFs seamlessly with UploadThing integration
- Message Management - Edit and delete messages in real-time across all clients
- Infinite Scroll - Optimized message loading in batches of 10 using TanStack Query
- Multiple Channel Types - Create Text, Audio, and Video call channels
- 1:1 Conversations - Private messaging between members
- Video Calls - High-quality peer-to-peer video calls powered by LiveKit
- Voice Channels - Crystal-clear audio communication
- Server Customization - Create and personalize your own servers
- Role-Based Access - Assign Guest or Moderator roles to members
- Member Controls - Kick users and manage permissions
- Invite System - Generate unique invite links with full tracking
- Modern UI - Beautiful interface built with TailwindCSS and Shadcn/UI
- Fully Responsive - Seamless experience across all devices
- Theme Support - Toggle between Light and Dark modes
- Robust Fallback - Automatic polling with alerts when WebSocket is unavailable
- Next.js 13 - React framework with App Router
- React - UI library
- TailwindCSS - Utility-first CSS framework
- Shadcn/UI - Re-usable component library
- Socket.io - Real-time bidirectional communication
- LiveKit - Audio and video infrastructure
- Prisma - Next-generation ORM
- MongoDB - NoSQL database
- Clerk - Authentication and user management
- UploadThing - File upload solution
- TanStack Query - Data fetching and caching
- Node.js 18+
- MongoDB database
- Clerk account
- UploadThing account
- LiveKit account
- Clone the repository
git clone https://github.com/yourusername/buzzroom.git
cd buzzroom- Install dependencies
npm install
# or
yarn install
# or
pnpm install- Set up environment variables
Create a .env file in the root directory:
# Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
# Database
DATABASE_URL=
# UploadThing
UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=
# LiveKit
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
NEXT_PUBLIC_LIVEKIT_URL=- Initialize the database
npx prisma generate
npx prisma db push- Run the development server
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser.
buzzroom/
βββ app/ # Next.js 13 app directory
βββ components/ # React components
βββ lib/ # Utility functions and configurations
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ hooks/ # Custom React hooks
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Discord for design inspiration
- All the amazing open-source libraries that made this project possible
Your Name - @yourtwitter
Project Link: https://github.com/yourusername/buzzroom
Made with β€οΈ using Next.js and Socket.io





