This project is a full-stack clone of Discord, built using Next.js, Clerk for authentication, and the Stream SDK for real-time messaging and video/audio calls. It replicates the core features of Discord including voice and text channel creation, personalized server creation, flawless authentication with a single click, and the ability to join video and audio calls.
- Voice and Text Channels Creation: Create and manage multiple voice and text channels within your servers.
- Personalized Server Creation: Create your own servers to manage your communities.
- Flawless Authentication: Secure, single-click authentication using Clerk.
- Join Video and Audio Calls: Seamless integration for video and audio calls.
- Next.js: A React framework for building server-side rendered applications.
- Clerk: Authentication service to provide secure and easy-to-implement authentication.
- Stream SDK: For real-time messaging, video, and audio call functionalities.
Follow these steps to get the project up and running on your local machine.
- Node.js (v12 or higher)
- npm or yarn
- Docker
-
Clone the repository:
git clone https://github.com/Pratik-050/discord-clone.git cd discord-clone
-
Install dependencies:
npm install # or yarn install
-
Set up environment variables:
Create a
.env.local
file in the root directory and refer the .env.example for the variable names. -
Run the development server:
npm run dev # or yarn dev
Open http://localhost:3000 to view the application in the browser.
-
Clone the repository:
git clone https://github.com/Pratik-050/discord-clone.git cd discord-clone
-
Set up environment variables:
Create a
.env.local
file in the root directory and refer the .env.example for the variable names. -
Build the Docker image:
docker build -t discord-clone .
-
Run the Docker container:
docker run -p 3000:3000 --env-file .env.local discord-clone
Open http://localhost:3000 to view the application in the browser.
This project uses Clerk for authentication. Upon visiting the application, users can sign up or log in with a single click. Clerk handles all authentication flows, including social logins and password management.
Users can create their own servers and manage multiple voice and text channels within those servers. Each server is isolated, providing a personalized space for different communities.
The Stream SDK powers the real-time messaging, video, and audio call features. Users can join voice and video channels within their servers, enabling seamless communication.