This is a repository for a Real-Time Chat Messaging: Next.js 13, React, Tailwind, Prisma, MongoDB, NextAuth, Pusher.
we'll walk you through the process of creating a fully-functional and visually stunning chat application that rivals the best in the industry.
Key Features:
- Real-time messaging using Pusher
- Message notifications and alerts
- Tailwind design for sleek UI
- Tailwind animations and transition effects
- Full responsiveness for all devices
- Credential authentication with NextAuth
- Google authentication integration
- Github authentication integration
- File and image upload using Cloudinary CDN
- Client form validation and handling using react-hook-form
- Server error handling with react-toast
- Message read receipts
- Online/offline user status
- Group chats and one-on-one messaging
- Message attachments and file sharing
- User profile customization and settings
- How to write POST, GET, and DELETE routes in route handlers (app/api)
- How to fetch data in server React components by directly accessing the database (WITHOUT API! like Magic!)
- Handling relations between Server and Child components in a real-time environment
- Creating and managing chat rooms and channels
Before you begin, ensure you have the following installed:
- Node.js (version 14 or higher)
- npm (Node package manager)
- MongoDB (for database management)
- A Pusher account (for real-time messaging)
- A Cloudinary account (for file uploads)
git clone https://github.com/rohit4242/realtime-chat-messaging.git
npm i
DATABASE_URL=
NEXTAUTH_SECRET=
NEXT_PUBLIC_PUSHER_APP_KEY=
PUSHER_APP_ID=
PUSHER_SECRET=
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=
GITHUB_ID=
GITHUB_SECRET=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
npx prisma db push
npm run dev
Running commands with npm npm run [command]
command | description |
---|---|
dev |
Starts a development instance of the app |
- Next.js: A React framework for server-side rendering and static site generation.
- React: A JavaScript library for building user interfaces.
- Tailwind CSS: A utility-first CSS framework for styling.
- Prisma: An ORM for database management.
- MongoDB: A NoSQL database for storing user and message data.
- NextAuth: Authentication for Next.js applications.
- Pusher: A service for real-time communication.
- Cloudinary: A cloud service for image and video management.
This Real-Time Chat Messaging Application is designed to provide a robust and interactive chat experience. With its modern tech stack and rich features, it stands out as a competitive solution for real-time communication needs.