Skip to content

A complete Discord clone with live video and voice chat, instant messaging, channels and servers.

Notifications You must be signed in to change notification settings

stonewerner/chatstarter

Repository files navigation

🎮 Discord Clone

Status Next.js TypeScript Convex Clerk LiveKit Shadcn/UI

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.

✨ Features

🔐 Authentication & User Management

  • Secure authentication powered by Clerk
  • User profiles with avatars and usernames
  • Friend system with request management

💬 Communication

  • Real-time messaging using Convex
  • File attachments and image sharing
  • Typing indicators
  • Direct messages between users

🎯 Servers & Channels

  • Create and manage servers
  • Custom server icons
  • Multiple channels per server
  • Server invitations with configurable settings:
    • Maximum uses
    • Expiration dates
    • Invite link generation

🎥 Voice & Video

  • Real-time voice chat using LiveKit
  • Video conferencing capabilities
  • Server-specific voice channels

🛠 Technology Stack

  • Frontend Framework: Next.js 15
  • Authentication: Clerk
  • Real-time Backend: Convex
  • UI Components: Shadcn UI
  • Video/Voice: LiveKit
  • Styling: Tailwind CSS
  • Language: TypeScript

🏗 Architecture

Backend (Convex)

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

Frontend (Next.js)

  • Modern React patterns with Server Components
  • Client-side real-time updates
  • Responsive UI with Shadcn components
  • Efficient routing and navigation

📦 Core Components

Server Management

Server Management

  • Handles server creation, management, and real-time updates
  • Includes channel creation and member management
  • Implements server navigation and permissions

Messaging System

  • Real-time messaging implementation
  • Typing indicators and presence
  • File attachments and media sharing

Friend System

  • Friend request handling
  • Relationship status management
  • Real-time friend status updates

🚀 Getting Started

  1. Clone the repository
git clone <repository-url>
cd discord-clone
  1. Install dependencies
npm install
  1. 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
  1. Run the development server
npm run dev

🔒 Security

  • Authentication handled by Clerk
  • Real-time permissions checking
  • Secure file uploads
  • Protected API routes
  • Server membership validation

Built with ❤️ using Next.js, Convex, and LiveKit

About

A complete Discord clone with live video and voice chat, instant messaging, channels and servers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published