Skip to content

๐Ÿ“ฎ MailMate is a modern, full-featured email client built with React, Clerk, Firebase, TailwindCSS and ShadCN. Includes rich-text email composing, folder management (Inbox, Starred, Sent, Trash), real-time sync, user authentication and a beautiful UI with Toast notifications and Lucide icons.

License

Notifications You must be signed in to change notification settings

MdAbdullahAnwar/MailMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฎ MailMate

MailMate - Modern Email Client

MailMate is a modern email client built with cutting-edge web technologies to provide a seamless email management experience. With a beautiful UI and powerful features, MailMate helps you stay organized and communicate efficiently.


๐ŸŒ Live Demo

๐Ÿ‘‰ Click here to try MailMate


๐Ÿง  Tech Stack

Built with love using:

  • โš›๏ธ React โ€“ Component-based frontend library
  • ๐Ÿ” Clerk โ€“ User authentication and management
  • ๐Ÿ—„๏ธ Firebase Firestore โ€“ Real-time backend database
  • ๐Ÿ”„ Redux Toolkit โ€“ Scalable state management
  • ๐ŸŽจ Tailwind CSS โ€“ Utility-first styling
  • ๐Ÿ—๏ธ ShadCN UI โ€“ Headless accessible UI components
  • ๐Ÿž React Toast โ€“ Elegant toast notifications
  • โœจ Lucide Icons โ€“ Icon set for a sleek UI
  • โŒจ๏ธ Jodit Editor โ€“ Rich Text Editor

Features

๐Ÿ” Secure Authentication

  • Secure Login & Logout with Clerk

๐Ÿ—„๏ธ Real-time Email Sync

  • Seamless integration with Firebase

๐Ÿ”„ State Management

  • Built using Redux Toolkit

๐ŸŽจ Beautiful UI

  • Styled with Tailwind CSS
  • Includes ShadCN components

๐Ÿ“ง Email Management

  • โœ๏ธ Compose rich-text emails
  • ๐Ÿ“ฅ Inbox with unread counts
  • โญ Starred messages
  • ๐Ÿ“ค Sent folder
  • ๐Ÿ—‘๏ธ Trash with Restore, Delete, Delete Selected, Clear All Trash functionalities

๐Ÿ“จ Compose Email Modal

  • Quickly access Inbox, Starred, Sent, and Trash folders in a single view

๐Ÿ“Š Dashboard Previews

  • Displays recent activity from Inbox and Sent emails for a quick snapshot

๐Ÿ” Paginated Emails

  • Displays 5 emails per page with Next and Previous navigation buttons, using a custom hook to enable reuse across components and enhance optimization.

โšก Real-Time Email Count Sync

  • Custom React Hook that tracks and updates real-time counts for Inbox (unread), Starred, Sent and Trash folders.

๐Ÿ”” Notifications

  • Toast-based alerts via React Toastify

โœจ Modern Icons

  • Provided by Lucide React

๐Ÿ“ Folder Structure

MailMate/
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ components/
โ”‚ โ”‚ โ”œโ”€โ”€ Layout/
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ AuthLayout.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ EmailModal.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Footer.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Header.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ MainLayout.jsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ Sidebar.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ ui/
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ avatar.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ badge.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ button.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ card.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ dialog.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ input.jsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ table.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ EmailModal.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ icons.jsx
โ”‚ โ”‚ โ””โ”€โ”€ PrivateRoute.jsx
โ”‚ โ”œโ”€โ”€ hooks/
โ”‚ โ”‚ โ”œโ”€โ”€ useMailAPI.js
โ”‚ โ”‚ โ”œโ”€โ”€ usePaginatedEmails.js
โ”‚ โ”‚ โ””โ”€โ”€ useSyncMailCounts.js
โ”‚ โ”œโ”€โ”€ lib/
โ”‚ โ”‚ โ””โ”€โ”€ utils.js
โ”‚ โ”œโ”€โ”€ pages/
โ”‚ โ”‚ โ”œโ”€โ”€ Compose.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Dashboard.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Home.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Inbox.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Profile.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Sent.jsx
โ”‚ โ”‚ โ”œโ”€โ”€ Starred.jsx
โ”‚ โ”‚ โ””โ”€โ”€ Trash.jsx
โ”‚ โ”œโ”€โ”€ store/
โ”‚ โ”‚ โ”œโ”€โ”€ emailSlice.js
โ”‚ โ”‚ โ””โ”€โ”€ store.js
โ”‚ โ”œโ”€โ”€ firebase.js
โ”‚ โ”œโ”€โ”€ App.jsx
โ”‚ โ”œโ”€โ”€ inbox.css
โ”‚ โ””โ”€โ”€ main.jsx

๐ŸŒŸ Key Components

๐Ÿ” Authentication

  • Uses Clerk for secure authentication
  • Protected routes with PrivateRoute component
  • User profile management

โœ‰๏ธ Email Features

  • Compose: Rich-text editor with Jodit
  • Inbox: Paginated email list with read/unread status
  • Starred: Favorite important emails
  • Sent: View sent messages
  • Trash: Manage deleted emails with restore functionality

๐Ÿงฑ Layout Components

  • Custom Header with navigation
  • Sidebar for quick access to folders
  • Footer highlights the core technologies powering the app
  • Responsive layouts via MainLayout and AuthLayout

๐ŸŽจ UI Components

  • Beautiful avatar, badge, button, card, dialog, input and tables from ShadCN
  • Crisp and modern icons powered by Lucide Icons
  • Elegant notifications and alerts using React Toast

๐Ÿ–ผ๏ธ EmailModal Components

  • For viewing emails

๐Ÿ“š API & State Management

  • Firebase Firestore: Stores all email data
  • Redux Toolkit: Manages application state
    • Tracks email counts (unread, starred, etc.)
    • Maintains email lists for folders
  • Custom hooks:
    • useMailAPI: Email CRUD operations
    • usePaginatedEmails: Pagination logic
    • useSyncMailCounts: Real-time sync of email counts

๐ŸŽจ Design System

  • Colors: Gradient backgrounds with vibrant tones
  • Typography: Clean and readable fonts
  • Icons: Intuitive Lucide icon set
  • Animations: Smooth transitions and hover effects

๐Ÿ’ค Lazy Loading Optimization

  • To enhance performance and reduce initial load time, MailMate implements lazy loading for key components and routes using Reactโ€™s lazy() and Suspense.

๐Ÿš€ Future Improvements

  • ๐Ÿ” Add email search functionality
  • ๐ŸŒ™ Add dark mode for better nighttime experience
  • ๐Ÿ“Ž Support for email attachments (images, files, etc.)
  • ๐Ÿ“ฉ Enable email forwarding and threaded replies
  • ๐Ÿ“ฑ Develop a mobile app version (React Native or Flutter)

๐Ÿ“œ License

This project is licensed under the MIT License.


๐Ÿ™Œ Support & Contributions

  • ๐ŸŒŸ Star this repo to show your appreciation
  • โœ๏ธ Fork and submit pull requests with improvements or fixes
  • ๐Ÿง  Share feedback and suggestions to help shape the future

About

๐Ÿ“ฎ MailMate is a modern, full-featured email client built with React, Clerk, Firebase, TailwindCSS and ShadCN. Includes rich-text email composing, folder management (Inbox, Starred, Sent, Trash), real-time sync, user authentication and a beautiful UI with Toast notifications and Lucide icons.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published