A modern chat application built with React, Appwrite, and TailwindCSS featuring user authentication, real-time chat UI, dark mode, and toast notifications.
🚀 This project demonstrates full-stack integration of authentication, protected routes, and interactive UI components with a clean developer experience.
- 🔑 User Authentication (Login/Signup with Appwrite)
- 📧 Email Verification (toggleable with
SKIP_EMAIL_VERIFICATION) - 🌙 Dark Mode Toggle (persistent via
localStorage) - 💬 Chat UI with responsive Sidebar + Chat Window
- 🔔 Toast Notifications (success, error, info)
- 🔄 Loading State Handling with animated spinner
- 🛡 Protected Routes with
react-router-dom - 🎨 Modern UI/UX with TailwindCSS
- Frontend: React 18, React Router
- Backend/Auth: Appwrite
- Styling: TailwindCSS + Dark Mode Support
- Icons: Lucide React
- State Management: React Hooks (
useState,useEffect)
├── src/
│ ├── components/
│ │ ├── AuthForm.jsx # Login/Register form
│ │ ├── Sidebar.jsx # Sidebar with user info + logout
│ │ ├── ChatWindow.jsx # Main chat window
│ │ └── Toast.jsx # Toast notification system
│ ├── lib/
│ │ └── appwrite.js # Appwrite client configuration
│ ├── App.jsx # Root app with routes
│ └── index.js # React entry point
├── public/
├── package.json
└── tailwind.config.js
git clone https://github.com/Sagarika311/chat-app.git
cd chat-appnpm install- Create a project in Appwrite Cloud or self-hosted Appwrite.
- Set up Authentication with Email/Password.
- Replace credentials in
src/lib/appwrite.js.
npm startCreate a .env file in the project root:
VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
VITE_APPWRITE_PROJECT_ID=your_project_id| Auth Pages | Chat UI |
|---|---|
![]() |
![]() |
- ✅ Real-time chat with Appwrite Realtime API
- ✅ User avatars + profile management
- ✅ Group chats & DMs
This project is licensed under the MIT License.
Made with ❤️ by Sagarika



