MailUp reimagines email as a chat experience. Instead of traditional inboxes and threads, each email conversation appears like a messaging appβwith chat bubbles, a sidebar for conversations, and a reply box at the bottom. The goal is to make email feel as fast, intuitive, and modern as chat, while supporting all the power of traditional email.
- π¬ Chat-style UI: See your emails as chat bubbles in a conversation
- π± Unified conversations: Sidebar lists all your email threads, just like chats
- βοΈ Rich replies: Compose responses with formatting and attachments in a familiar chat interface
- π₯οΈ System integration: Native notifications, tray icon, and drag-and-drop attachments for a seamless desktop experience
- π§ Multi-provider support: Gmail, Outlook, Yahoo, and custom IMAP/SMTP accounts
- β‘ Offline-first: Access and compose emails even without an internet connection
- Node.js (v18 or higher)
- npm or yarn
- Git
-
Clone the repository
git clone https://github.com/hbarve1/mailup.git cd mailup -
Install dependencies
cd desktop npm install -
Start development server
# Start Vite dev server npm run dev # In another terminal, start Electron npm start
# Build the application
npm run build
# The built files will be in the `dist/` directory
# Electron will load from `dist/index.html`- Frontend: React 19 + TypeScript + Tailwind CSS
- Desktop: Electron.js
- State Management: Zustand
- Build Tool: Vite
- Database: SQLite (planned)
- Email Protocols: IMAP/SMTP (planned)
mailup/
βββ desktop/ # Main Electron application
β βββ src/
β β βββ components/ # React components
β β β βββ ChatWindow/ # Main chat interface
β β β βββ MessageList/# Message display
β β β βββ MessageInput/# Reply interface
β β β βββ Sidebar/ # Conversation list
β β β βββ AppHeader/ # Top navigation
β β βββ store/ # State management (Zustand)
β β βββ pages/ # Route pages
β β βββ types/ # TypeScript definitions
β βββ backend/ # Electron main process
β β βββ index.cjs # Main Electron window
β βββ package.json # Dependencies & scripts
βββ docs/ # Documentation
β βββ prd.md # Product Requirements Document
βββ README.md # This file
ChatWindow: Main chat interface displaying messages as bubblesSidebar: Conversation list with user avatars and previewsMessageInput: Rich text editor for composing repliesmailStore: Zustand store managing application stateElectron Backend: Desktop integration and system features
MailUp features a modern, chat-inspired interface:
- Gradient Background: Beautiful green-to-blue gradient with glass-morphism effects
- Chat Bubbles: Messages displayed in familiar chat format
- Responsive Design: Adapts seamlessly to different screen sizes
- Dark/Light Mode: Planned feature for user preference
- System Integration: Native notifications and tray functionality
npm run dev # Start Vite development server
npm run start # Launch Electron with built app
npm run build # Build for production
npm run lint # Run ESLint
npm run preview # Preview production buildMailUp uses Zustand for state management with the following stores:
mailStore: Manages email data, users, conversations, and messagesuserStore: User authentication and preferenceschatStore: Real-time chat state and notifications
- Components: Add new React components in
src/components/ - Pages: Create new routes in
src/pages/ - State: Extend stores in
src/store/ - Types: Define TypeScript interfaces in
src/types/
We welcome contributions from the open-source community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Code Style: Follow the existing ESLint configuration
- TypeScript: Use strict typing for all new code
- Testing: Add tests for new features (testing framework TBD)
- Documentation: Update docs for any API changes
- Commits: Use conventional commit messages
- Email Integration: IMAP/SMTP connectors for various providers
- UI Components: New chat features and interface improvements
- Performance: Optimizations for large email volumes
- Testing: Unit and integration tests
- Documentation: API docs, user guides, and tutorials
- Localization: Multi-language support
- IMAP/SMTP connectors for Gmail, Outlook, Yahoo
- Local SQLite database for offline caching
- Real-time email synchronization
- Basic attachment handling
- Multiple account support
- Unified inbox across providers
- Advanced search and filtering
- Email templates and signatures
- Dark/Light theme toggle
- AI-powered features (summarization, smart replies)
- Collaboration tools (shared inboxes)
- End-to-end encryption
- Offline-first architecture
- Mobile companion app
- Bug Reports: Use the GitHub Issues page
- Feature Requests: Submit via GitHub Issues with the "enhancement" label
- Questions: Start a GitHub Discussion
This project is licensed under the MIT License - see the LICENSE file for details.
- React Team for the amazing frontend framework
- Electron Team for desktop app capabilities
- Tailwind CSS for the utility-first CSS framework
- Zustand for lightweight state management
- Vite for the fast build tool
- Project Link: https://github.com/hbarve1/mailup
- Issues: https://github.com/hbarve1/mailup/issues
- Discussions: https://github.com/hbarve1/mailup/discussions
Made with β€οΈ by the MailUp community
