A responsive newsletter subscription web application that integrates with Mailchimp API to manage email subscribers.
This application provides a clean, user-friendly interface for visitors to subscribe to a newsletter. User data is securely sent to Mailchimp for mailing list management.
| Technology | Purpose |
|---|---|
| Node.js | Runtime environment |
| Express 5 | Web framework |
| Mailchimp API | Email list management |
| Bootstrap 5 | Responsive UI components |
| Vercel | Serverless deployment |
- 📧 Newsletter subscription form with first name, last name, and email
- ✅ Success/failure feedback pages
- 📱 Fully responsive design
- 🔒 Secure API key handling with environment variables
- ⚡ Serverless deployment on Vercel
Newsletter-Signup/
├── api/
│ └── index.js # Express server & Mailchimp integration
├── public/
│ ├── css/
│ │ └── styles.css # Custom styles
│ └── images/ # Static assets
├── signup.html # Main subscription page
├── success.html # Successful subscription page
├── failure.html # Failed subscription page
├── vercel.json # Vercel deployment config
└── package.json
- Node.js (v18 or higher)
- Mailchimp account with API access
Create a .env file in the root directory:
MAILCHIMP_API_KEY=your_mailchimp_api_key
MAILCHIMP_LIST_ID=your_audience_list_id-
Clone the repository
git clone https://github.com/yourusername/Newsletter-Signup.git cd Newsletter-Signup -
Install dependencies
npm install
-
Configure environment variables
- Create a
.envfile with your Mailchimp credentials
- Create a
-
Start the server
npm start
-
Open in browser
http://localhost:3000
This project is configured for Vercel deployment:
- Push your code to GitHub
- Import the repository in Vercel
- Add environment variables in Vercel dashboard:
MAILCHIMP_API_KEYMAILCHIMP_LIST_ID
- Deploy
The application uses Mailchimp's Marketing API v3 to add subscribers:
- Endpoint:
https://usX.api.mailchimp.com/3.0/lists/{list_id} - Method: POST
- Authentication: Basic Auth with API key
This project is licensed under the MIT License - see the LICENSE file for details.