A full-stack Slack-inspired communication app featuring real-time messaging, threads, reactions, polls, file sharing, 1-on-1 and group video calls with screen sharing, and more.
| Auth Page | Chat Page | Call Page |
|---|---|---|
|
|
|
- π¬ Real-time Messaging β With threads, reactions, and pinned messages
- π€ File Sharing β Supports images, PDFs, ZIPs, and more
- π Polls β Multiple options, anonymous mode, suggestions, and comments
- π Clerk Authentication β Secure onboarding and user management
- π₯ Channels & DMs β Direct Messages and Private Channels
- π₯ Video & Screen Sharing β 1-on-1 and group video calls with screen sharing & recording
- β€οΈ Live Reactions β Real-time during video calls
- β Background Jobs β Powered by Inngest
- π Scalable Backend β Built using Stream for media and messaging pipelines
- π¨ Frontend: React.js, Tailwind CSS
- π Backend: Node.js, Express.js
- π Database: MongoDB
- π‘ Real-time Communication: Stream
- π Authentication: Clerk
- β Background Jobs: Inngest
- Node.js (v18 or higher)
- npm or yarn
- MongoDB Atlas account (or local MongoDB instance)
-
Clone the repository
git clone https://github.com/soumadip-dev/Slackify-MERN.git cd Slackify-MERN -
Backend Setup
cd server npm installCreate a
.envfile in theserverdirectory with:PORT=8080 MONGO_URI=<YOUR_MONGODB_URI> NODE_ENV=development CLERK_PUBLISHABLE_KEY=<YOUR_CLERK_PUBLISHABLE_KEY> CLERK_SECRET_KEY=<YOUR_CLERK_SECRET_KEY> STREAM_API_KEY=<YOUR_STREAM_API_KEY> STREAM_API_SECRET=<YOUR_STREAM_API_SECRET> INNGEST_EVENT_KEY=<YOUR_INNGEST_EVENT_KEY> INNGEST_SIGNING_KEY=<YOUR_INNGEST_SIGNING_KEY>
-
Frontend Setup
cd ../client npm installCreate a
.envfile in theclientdirectory with:VITE_CLERK_PUBLISHABLE_KEY=<YOUR_CLERK_PUBLISHABLE_KEY> VITE_STREAM_API_KEY=<YOUR_STREAM_API_KEY>
-
Run the Application
- Backend (Terminal 1):
cd server npm run dev - Frontend (Terminal 2):
cd client npm run dev
- Backend (Terminal 1):


