A full-fledged email tracking tool built with the MERN stack (MongoDB, Express, React, Node.js). Send emails with detailed tracking capabilities including open rates, click tracking, read time analytics, and more.
- Email Sending: Send emails through your own SMTP configuration
- Open Tracking: Track when recipients open your emails with pixel tracking
- Click Tracking: Monitor link clicks with automatic URL wrapping
- Read Time Analytics: Measure how long recipients spend reading your emails
- Multiple Recipients: Support for To, Cc, and Bcc fields
- Rich Text Editor: Compose beautiful HTML emails with React Quill
- Real-time Analytics: Comprehensive dashboard with charts and statistics
- JWT-based authentication
- Secure password hashing with bcryptjs
- Protected API routes
- CORS configuration
- Rate limiting
- Helmet security headers
- Total emails sent/failed
- Open rate and click rate percentages
- Unique opens tracking
- Click-through analytics
- Interactive charts with Recharts
- Email history with detailed tracking data
- Speech-to-Text: Dictate emails using browser speech recognition or OpenAI Whisper
- Voice Commands: Hands-free email composition with natural language commands
- Real-time Transcription: See your words transcribed instantly
- Smart Commands: Say "to john@company.com" or "subject meeting tomorrow" to auto-fill fields
- Campaign Integration: Associate voice-composed emails with campaigns
- AI-Powered Timing: Automatically determines optimal send times per recipient
- Engagement Analysis: Analyzes past open/click patterns for best timing
- Timezone-Aware: Handles multiple timezones with IANA format support
- Queue Management: Bull/Redis queue for reliable scheduled sends
- Multiple Suggestions: Get 3+ AI-recommended times with confidence scores
- Reschedule Support: Easily update scheduled times before sending
- Performance Prediction: AI analysis of email success rates before sending
- Smart Optimization: AI-generated subject lines and content improvements
- Campaign Intelligence: Automated segmentation and follow-up suggestions
- Inbox Rotation & Dual Warmup AI: Automatically rotates email sends across multiple connected inboxes with AI-powered dual warmup algorithms to build sender reputation dynamically, reducing spam flags by 40-50%.
- Interactive AMP Email Builder: AI-generated emails with embedded interactive elements (forms, polls, calendars) using AMP for Gmail/Outlook, enabling real-time user actions without leaving the inbox.
- Real-Time Visual Personalization Engine: Uses AI to dynamically update email images/videos based on recipient's live data (weather, location, behavior), creating hyper-personalized visuals on-the-fly.
- Goal-Based AI Automation Designer: Users input high-level goals (e.g., "increase repeat purchases by 20%"), and AI auto-builds/adjusts multi-step workflows across email/SMS, predicting and testing paths.
- Predictive CLV & Next-Order Timing: AI forecasts individual customer lifetime value and exact next-purchase windows using historical patterns, triggering proactive "pre-need" emails.
- AI Conversation Agents for Replies: Autonomous agents analyze incoming replies, categorize sentiment, generate context-aware responses, and escalate to humans only for complex cases.
- Staggered Send Optimization with Engagement Waves: AI schedules emails in adaptive waves based on real-time opens to maximize collective deliverability and virality.
- Liquid Dynamic Personalization Layer: Applies advanced templating (Liquid syntax) for hyper-variable content, auto-swapping subject lines/CTAs based on micro-segments with seamless A/B testing.
- Cross-Channel Journey AI Adapter: AI maps and adapts email journeys to other channels (SMS/push), predicting optimal channel switches based on user fatigue.
- Privacy-First Zero-Party Data AI Enricher: Uses interactive email quizzes/polls to collect zero-party data, then AI enriches profiles without third-party tracking, ensuring GDPR compliance.
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - Database
- Mongoose - ODM
- Nodemailer - Email sending
- JWT - Authentication
- bcryptjs - Password hashing
- React 18 - UI library
- TypeScript - Type safety
- Vite - Build tool
- React Router - Routing
- Zustand - State management
- Axios - HTTP client
- TailwindCSS - Styling
- Framer Motion - Animations
- React Quill - Rich text editor
- Recharts - Charts and analytics
- Node.js (v16 or higher)
- MongoDB (local or Atlas)
- Redis (for email scheduling queue)
- SMTP credentials (Gmail, Outlook, etc.)
- OpenAI API Key (for voice transcription and AI features)
- Microphone access (for voice dictation)
cd backend
npm install
npm run devThe backend will run on http://localhost:5000
cd frontend
npm install
npm run devThe frontend will run on http://localhost:5173
Make sure MongoDB is running locally:
mongodOr use MongoDB Compass to connect to: mongodb://localhost:27017/email-sender-tracker
Tracking won't work with localhost URLs! When you open emails on other devices/clients, they can't reach localhost:5000.
Quick Fix: Use ngrok to make your backend publicly accessible:
# Install ngrok: https://ngrok.com/download
ngrok http 5000
# Copy the ngrok URL (e.g., https://abc123.ngrok.io)
# Update backend/.env:
BACKEND_URL=https://abc123.ngrok.io
# Restart backend
npm run devπ See QUICK_FIX.md for detailed instructions
- Navigate to
http://localhost:5173 - Create a new account or login
- Go to Settings page
- Enter your SMTP details:
- Gmail: smtp.gmail.com, Port 587
- Outlook: smtp-mail.outlook.com, Port 587
- For Gmail, use an App Password
- Test the connection before saving
- Navigate to "Send Email"
- Add recipients (To, Cc, Bcc)
- Write your subject and email content
- Click "Send Email"
- Dashboard: Overview of all email statistics
- Emails: List of sent emails with tracking data
- Analytics: Detailed charts and insights
- Enable Voice Features: Go to Send Email page
- Grant Microphone Permission: Click "Start Voice" and allow access
- Dictate Your Email: Speak naturally:
- "New email to john@company.com"
- "Subject meeting at 3pm tomorrow"
- "Dear John, please review the attached report"
- "Send"
- Voice Commands: Try these commands:
- "to [email]" - Add recipient
- "cc [email]" - Add CC recipient
- "subject [text]" - Set subject
- "send" - Send the email
- "cancel" - Clear composition
- Hands-Free Mode: Click "Hands-Free Mode" for overlay with command suggestions
Note: Voice features require OpenAI API key for full functionality.
- Compose Email: Fill in subject, recipients, and body on Send Email page
- Click "Schedule": Opens AI scheduling modal
- View AI Suggestions: See 3+ optimal send times with confidence scores
- Select Time: Choose AI recommendation or set custom time
- Confirm Schedule: Email queued for optimal delivery
- Manage Queue: Visit
/queueto view/reschedule/cancel scheduled emails
Features:
- AI analyzes recipient's past engagement (open times, response patterns)
- Automatically detects and handles timezones
- Fallback to 10am local time if insufficient data
- Reschedule anytime before sending
- Real-time queue status monitoring
POST /api/auth/register- Register new userPOST /api/auth/login- Login userGET /api/auth/me- Get current userPUT /api/auth/profile- Update profile
GET /api/smtp- Get SMTP configPUT /api/smtp- Update SMTP configPOST /api/smtp/test- Test SMTP connectionDELETE /api/smtp- Delete SMTP config
POST /api/emails/send- Send tracked emailGET /api/emails- Get all emails (paginated)GET /api/emails/:id- Get single emailGET /api/emails/analytics/stats- Get email statisticsDELETE /api/emails/:id- Delete email
GET /api/track/open/:trackingId- Track email openGET /api/track/click/:trackingId- Track link clickPOST /api/track/readtime/:trackingId- Track read time
POST /api/voice/transcribe- Transcribe audio to textPOST /api/voice/command- Parse voice commandPOST /api/voice/compose- Compose email from voiceGET /api/voice/supported-commands- Get voice commands list
POST /api/scheduler/schedule-email- Schedule email with AI optimal timeGET /api/scheduler/optimal-times/:recipientEmail- Get AI time suggestionsPUT /api/scheduler/reschedule/:emailId- Reschedule queued emailGET /api/scheduler/queue- Get user's scheduled emails queue
GET /api/inbox-rotation- Get all inboxesPOST /api/inbox-rotation- Add new inboxPOST /api/inbox-rotation/:inboxId/warmup- Start warmupGET /api/inbox-rotation/rotation/recommend- Get rotation recommendationPUT /api/inbox-rotation/:inboxId/send-count- Update send countGET /api/inbox-rotation/:inboxId/test- Test inbox connection
POST /api/amp/generate- Generate AMP email
POST /api/visual-personalization/generate- Generate personalized visualGET /api/visual-personalization/live-data/:email- Get live recipient data
POST /api/goal-automation/design- Design workflow from goal
GET /api/clv/predict/:contactId- Predict CLV and next order
POST /api/conversation-agents/respond- Generate AI response
POST /api/staggered-send/optimize- Optimize send waves
POST /api/liquid/personalize- Apply liquid templating
POST /api/cross-channel/adapt- Adapt journey to other channels
POST /api/zero-party/collect- Collect zero-party dataPOST /api/zero-party/enrich- Enrich profile with AI
- Push code to GitHub
- Import repository in Vercel
- Select
backendfolder as root - Add environment variables
- Deploy
- Import repository in Vercel
- Select
frontendfolder as root - Add
VITE_API_URLenvironment variable - Deploy
- Enable 2-factor authentication
- Generate an App Password:
- Go to Google Account β Security
- 2-Step Verification β App passwords
- Generate password for "Mail"
- Use the generated password in SMTP settings
# Terminal 1 - Start MongoDB
mongod
# Terminal 2 - Start Backend
cd backend
npm install
npm run dev
# Terminal 3 - Start Frontend
cd frontend
npm install
npm run devThen open http://localhost:5173 in your browser.
Built with β€οΈ using MERN Stack + Nodemailer