A modern, full-featured Dating App built using Next.js App Router.
This app includes user authentication, real-time chat, profile matching, and more β perfect for connecting people online in a fast, beautiful, and responsive way.
git clone https://github.com/Ahmad-code077/Next-Dating-App
cd Next-Dating-Appnpm install
# or
yarn install
# or
pnpm install
Create a .env file in the project root with the following: DATABASE_URL=your_database_url AUTH_SECRET=your_auth_secret
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="your_cloudinary_cloud_name" NEXT_PUBLIC_CLOUDINARY_API_KEY="your_cloudinary_api_key" CLOUDINARY_API_SECRET="your_cloudinary_api_secret" NEXT_PUBLIC_CLOUDINARY_PRESET="your_upload_preset"
PUSHER_APP_ID="your_pusher_app_id" NEXT_PUBLIC_PUSHER_APP_KEY="your_pusher_key" PUSHER_SECRET="your_pusher_secret" NEXT_PUBLIC_PUSHER_CLUSTER="your_pusher_cluster"
NEXT_PUBLIC_BASE_URL="http://localhost:3000"
npx prisma generate
npx prisma db push
# (Optional) Open Prisma Studio:
npx prisma studionpm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser to view the app.
- β User signup/login with NextAuth.js & Prisma
- πΈ Profile creation + Cloudinary image uploads
- β€οΈ Swipe to like/dislike & matching logic
- π¬ Real-time chat powered by Pusher
- π¬ Inbox & outbox message containers with soft delete
- π Cursor-based pagination for messages
- π Dark mode toggle
- β‘οΈ Responsive UI with Tailwind CSS & Shadcn UI
- βοΈ Framework: Next.js 14 (App Router), TypeScript
- π¨ UI: Tailwind CSS, Shadcn UI, Lucide icons
- π State Management: Zustand
- π Forms & Validation: React Hook Form & Zod
- π Authentication: NextAuth.js (Credentials Provider & Prisma Adapter)
- πΎ Database & ORM: Prisma (PostgreSQL)
- βοΈ Storage: Cloudinary for image uploads
- π΄ Real-time: Pusher
- π Notifications: Browser / in-app alerts