Skip to content

Real-time messaging with Socket.io, UploadThing for attachments, message editing/deletion, 1:1 and group text/audio/video channels, member management, unique invite system, infinite message loading, TailwindCSS/ShadcnUI UI, WebSocket fallback, Prisma ORM, Planetscale MySQL, Clerk authentication.

Notifications You must be signed in to change notification settings

mud1tx/ChatVerse

Repository files navigation

Features:

  • Real-time messaging using Socket.io
  • Send attachments as messages using UploadThing
  • Delete & Edit messages in real time for all users
  • Create Text, Audio and Video call Channels
  • 1:1 conversation between members
  • 1:1 video calls between members
  • Member management (Kick, Role change Guest / Moderator)
  • Unique invite link generation & full working invite system
  • Infinite loading for messages in batches of 10 (tanstack/query)
  • Server creation and customization
  • Beautiful UI using TailwindCSS and ShadcnUI
  • Full responsivity and mobile UI
  • Light / Dark mode
  • Websocket fallback: Polling with alerts
  • ORM using Prisma
  • MySQL database using Planetscale
  • Authentication with Clerk

Prerequisites

Node version 18.x.x

Cloning the repository

git clone https://github.com/AntonioErdeljac/next13-discord-clone.git

Install packages

npm i

Setup .env file

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=


DATABASE_URL=

UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=

LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
NEXT_PUBLIC_LIVEKIT_URL=

Setup Prisma

Add MySQL Database (I used PlanetScale)

npx prisma generate
npx prisma db push

Start the app

npm run dev

Available commands

Running commands with npm npm run [command]

command description
dev Starts a development instance of the app

About

Real-time messaging with Socket.io, UploadThing for attachments, message editing/deletion, 1:1 and group text/audio/video channels, member management, unique invite system, infinite message loading, TailwindCSS/ShadcnUI UI, WebSocket fallback, Prisma ORM, Planetscale MySQL, Clerk authentication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published