A full-featured Discord clone built with modern web technologies, offering real-time communication features including video chat, voice calls, instant messaging, and server management.
- Secure authentication powered by Clerk
- User profiles with avatars and usernames
- Friend system with request management
- Real-time messaging using Convex
- File attachments and image sharing
- Typing indicators
- Direct messages between users
- Create and manage servers
- Custom server icons
- Multiple channels per server
- Server invitations with configurable settings:
- Maximum uses
- Expiration dates
- Invite link generation
- Real-time voice chat using LiveKit
- Video conferencing capabilities
- Server-specific voice channels
- Frontend Framework: Next.js 15
- Authentication: Clerk
- Real-time Backend: Convex
- UI Components: Shadcn UI
- Video/Voice: LiveKit
- Styling: Tailwind CSS
- Language: TypeScript
The application uses Convex as its backend, providing:
- Real-time data synchronization
- Secure database operations
- File storage for attachments and images
- Authentication integration with Clerk
- Modern React patterns with Server Components
- Client-side real-time updates
- Responsive UI with Shadcn components
- Efficient routing and navigation
- Handles server creation, management, and real-time updates
- Includes channel creation and member management
- Implements server navigation and permissions
- Real-time messaging implementation
- Typing indicators and presence
- File attachments and media sharing
- Friend request handling
- Relationship status management
- Real-time friend status updates
- Clone the repository
git clone <repository-url>
cd discord-clone
- Install dependencies
npm install
- Environment Setup
Create a
.env.local
file with:
NEXT_PUBLIC_CONVEX_URL=your_convex_url
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret
LIVEKIT_API_KEY=your_livekit_key
LIVEKIT_API_SECRET=your_livekit_secret
- Run the development server
npm run dev
- Authentication handled by Clerk
- Real-time permissions checking
- Secure file uploads
- Protected API routes
- Server membership validation