A drag and drop email template builder for creating responsive email templates easily.
This is my project for building email templates without writing HTML code. You can drag blocks like text, images, buttons etc and create email templates. It also has user authentication and you can save your templates.
- Drag & Drop Builder - add text, images, buttons, dividers
- User Login/Signup with JWT tokens
- Save and edit templates
- Export to HTML
- Send templates to email addresses
- Mark templates as favourites
- Password reset (OTP via email)
Frontend:
- React
- React DnD for drag and drop
- Tailwind CSS for styling
- Framer Motion for animations
- Axios for API calls
Backend:
- Node.js + Express
- MongoDB database
- JWT for authentication
- Nodemailer for sending emails
- bcrypt for password hashing
- Node.js installed
- MongoDB installed or MongoDB Atlas account
- Clone the repository
git clone <your-repo-url>
cd email-template-builder- Install server dependencies
npm install- Install client dependencies
cd client
npm install
cd ..- Create .env file in root directory
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
JWT_REFRESH_SECRET=your_refresh_secret
CLIENT_URL=http://localhost:3000
PORT=5001
- Run the application
# Run both client and server
npm run dev
# Or run separately:
# Server: npm run server
# Client: cd client && npm start- Sign up for an account
- Login with your credentials
- Click "Create New Template"
- Drag blocks from left panel to canvas
- Click on blocks to edit their properties
- Save your template
- Export as HTML or send via email
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context
│ │ └── utils/ # Helper functions
│ └── public/
├── server/ # Express backend
│ ├── controllers/ # Route controllers
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ └── utils/ # Helper functions
└── package.json
- Sometimes the drag and drop can be a bit glitchy on slower computers
- Email sending uses Ethereal in development (fake emails)
- Add more block types (columns, spacers)
- Template preview before sending
- Bulk email sending
- Template categories/tags
- Better mobile responsiveness
MIT