Welcome to the Discord Clone repository! This project is a developer-friendly real-time messaging application that emulates the functionality of Discord. It is built using modern web technologies and offers various features for seamless communication and collaboration.
- Real-time Messaging: Instantly chat with other users using Socket.io.
- File Attachments: Send files and images as messages using UploadThing.
- Message Editing & Deletion: Edit and delete messages in real-time.
- Voice & Video Calls: Create text, audio, and video call channels.
- One-on-One Conversations: Private one-on-one conversations between members.
- Member Management: Kick members and change their roles.
- Invite System: Generate unique invite links and set up an invite system.
- Message Batching: Load messages in batches of 10 for seamless conversation.
- Server Customization: Create and customize your server.
- Stunning UI: Beautifully designed using TailwindCSS and ShadcnUI.
- Responsiveness: Works flawlessly on both desktop and mobile devices.
- Light & Dark Mode: Choose your preferred viewing mode.
- Websocket Fallback: Ensures uninterrupted communication.
- Database & ORM: Prisma for database operations.
- MySQL Database: Utilize Planetscale for your MySQL database.
- Authentication: Secure the app with Clerk.
To get started with this Discord Clone, follow these steps:
- Clone the repository to your local machine.
- Install the necessary dependencies using Bun, our lightweight and energetic package manager. Just run bun installand let the magic happen!
- Configure your environment variables by creating a .envfile based on the provided.env.example.
- Set up your database and authentication configurations.
- Run the application using npm start.
- Explore the features and start developing or testing your own Discord-like application.
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=nclerk_publishable_key
CLERK_SECRET_KEY=clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
# Database Configuration
DATABASE_URL=postgres://your_db_username:your_db_password@your_db_host/your_db_name?pgbouncer=true&connect_timeout=10
DIRECT_URL=postgres://your_db_username:your_db_password@your_db_host/your_db_name?connect_timeout=10
# UploadThing Configuration
UPLOADTHING_SECRET=uploadthing_secret
UPLOADTHING_APP_ID=uploadthing_app_id
# LiveKit Configuration
LIVEKIT_API_SECRET=livekit_api_secret
LIVEKIT_API_KEY=livekit_api_key
NEXT_PUBLIC_LIVEKIT_URL=wss://discord-clone.livekit.cloudHere's a roadmap outlining the planned features and improvements for my Discord clone application.
- 
Voice Chat Integration - Implement real-time voice chat functionality for seamless communication.
 
- 
Video Chat Support - Introduce video chat features for face-to-face conversations.
 
- 
Screen Sharing - Enable screen sharing during calls for collaborative interactions.
 
- 
Direct Messaging - Allow users to send private messages to other users.
 
- 
Message Editing - Allow users to edit their messages in real-time.
 
- 
Real-time Typing Indicators - Display the typing status of users in real-time.
 
- 
Emojify Your Messages - Allow users to react to messages with emojis. Also, display the number of reactions.
 
- 
Stay in the Loop - Display the online status of users and their last active time.
 
- 
Server Discovery - Create a server discovery mechanism to help users find and join communities.
 
- 
Server Categories - Allow users to categorize their servers for better organization.
 
- 
Rich Media Integration - Improve media sharing capabilities, including support for gifs, videos, and link previews.
 
- 
Custom Emojis and Stickers - Allow users to personalize their messages with custom emojis and stickers.
 
- 
Server Bots - Integrate a bot API or allow users to add custom bots to their servers.
 
- 
User Feedback and Bug Reporting - Establish a feedback and bug reporting system to gather user input and improve the app.
 
- 
Notifications - Implement a notification system to keep users updated on new messages and events.
 
- 
Localization - Add support for multiple languages to cater to a global audience.
 
This roadmap is a dynamic plan that I'll continually update as I progress and gather feedback from everyone. If you have any suggestions or feature requests, please feel free to open an issue or submit a pull request.
We welcome contributions to this Discord Clone repository! If you find any bugs or issues, feel free to open an issue or submit a pull request. I also encourage you to add new features and improve the existing codebase.
This Discord Clone repository is licensed under the MIT license. Please see the LICENSE file for more details.
- Discord Logo SVG by NNTin.
- CodeWithAntonio for the inspiration and guidance.