Fincord
A fullstack Discord clone built with Next.js, React, Tailwind, Socket.IO, Prisma, and MySQL.


Features
- ๐ Authentication using Clerk
- ๐ MySQL database with PlanetScale and Prisma ORM
- โ๏ธ Real-time messaging using Socket.IO with polling as a fallback
- ๐ Audio and video calls with LiveKit
- ๐ Infinite scroll for loading messages using @tanstack/react-query
- ๐ Deployed using Railway
- โ๏ธ Create and customize servers and channels
- ๐ Edit and delete messages
- ๐จโ๐ฉโ๐งโ๐ฆ Invite and manage members
- โจ Responsive UI and light/dark mode built with Tailwind and shadcn/ui
Getting Started
Clone the repo
git clone https://github.com/rajsoni06/Fincord.git
Install dependencies
npm install
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
npx prisma generate
npx prisma db push
Start the app
npm run dev