Mailchimp is an email marketing platform. If all you need is to collect emails on a landing page, it is overkill. You do not need audience segmentation, drip campaigns, or A/B tested subject lines before your product exists. You need a form that saves email addresses somewhere you can access them.
Here are three ways to do that without signing up for an email marketing platform.
You do not need Mailchimp to collect emails on a landing page. Use a waitlist widget (zero code), a plain HTML form pointed at an API endpoint (five lines), or the JavaScript SDK (full control). All three give you a unified contact list, automatic deduplication, and built-in referral tracking.
Why Mailchimp Is Overkill for Pre-Launch
Mailchimp is built for ongoing email marketing: newsletters, drip sequences, audience segmentation. Before you have a product, you need exactly three things:
- A form that accepts an email address
- A place to store those emails
- A way to see who signed up and where they came from
Mailchimp gives you all of that, plus hundreds of features you will not use for months. The complexity adds setup time, the free tier caps at 500 contacts, and your email list lives in a silo disconnected from your analytics and forms.
Option 1: Waitlist Widget (Zero Code)
The fastest approach. Add one script tag to your page and drop in a widget container.
Add the OperatorStack script tag to your landing page:
<script src="https://operatorstack.dev/os.js" data-project="pk_your_key"></script>
Place a widget container where you want the email form:
<div data-os-widget="waitlist"></div>
That is it. The widget renders a signup form with name and email fields. Every submission creates a contact in your dashboard with automatic deduplication and a unique referral code.
This approach works on any page: static HTML, React, Vue, Astro, WordPress, Framer, or anything built with Lovable or Bolt.new.
Option 2: HTML Form With API Endpoint (Five Lines)
If you want a form that matches your page design, use a plain HTML form that posts directly to OperatorStack's form endpoint.
Create a form in your OperatorStack dashboard. Go to the Forms tab in your project and create a new form. Copy the form key (it starts with frm_).
Build a standard HTML form that points to the endpoint:
<form action="https://api.operatorstack.dev/v1/f/frm_your_key" method="POST">
<input type="email" name="email" placeholder="you@example.com" required />
<input type="text" name="name" placeholder="Your name" />
<input type="hidden" name="_redirect" value="https://yoursite.com/thanks" />
<button type="submit">Join the Waitlist</button>
</form>
The _redirect field is optional. If present, the form redirects to your thank-you page after submission. Without it, OperatorStack returns a JSON response.
Every submission with an email field automatically creates a unified contact. No extra configuration.
This approach works without JavaScript. It is the best option for simple static sites, email signatures, or anywhere you cannot add a script tag.
Option 3: JavaScript SDK (Full Control)
For complete control over the signup experience, use the SDK directly.
// Wait for the SDK to be ready
await OperatorStack.ready;
// Collect the email however you want
const email = document.querySelector("#email-input").value;
// Submit to your waitlist
const result = await OperatorStack.joinWaitlist({
email: email,
name: document.querySelector("#name-input").value,
});
// Show referral sharing links
const links = OperatorStack.getShareLinks(result.referral_code);
Or submit to a custom form:
await OperatorStack.submitForm("frm_your_key", {
email: email,
name: name,
company: company,
});
The SDK handles the API call, error handling, and referral code detection. You handle the UI.
What You Get That Mailchimp Does Not
Unified contacts. Every email you collect, whether through the waitlist widget, a custom form, or the SDK, lands in the same contact list. If someone signs up for the waitlist and later fills out a feedback form, both interactions are on the same contact record.
Referral tracking. Every signup gets a unique referral code and sharing links. Mailchimp has no built-in referral system. To add one, you would need a separate tool like Viral Loops ($35/month).
Cookie-free analytics. The same script tag that collects emails also tracks page views, traffic sources, and conversion rates. No cookie banner required. Mailchimp's analytics only cover email campaign performance, not your website.
No contact limits on free tier. Mailchimp's free tier caps at 500 contacts. OperatorStack's free tier is designed for pre-launch validation with generous limits.
When to Actually Use Mailchimp
Mailchimp becomes the right tool when you need to send email campaigns. Drip sequences, newsletters, broadcast emails with open rate tracking. OperatorStack handles contact collection and organization. Mailchimp handles ongoing email marketing.
The two are not mutually exclusive. Collect emails with OperatorStack during pre-launch, then export your contact list to Mailchimp when you are ready to send campaigns.
Frequently Asked Questions
Can I export my contacts to Mailchimp later?
Yes. OperatorStack's Audience tab lets you view and export all your contacts. When you are ready for email campaigns, you can move your list to Mailchimp, Resend, or any email platform.
What happens if someone submits the same email twice?
OperatorStack deduplicates by email. The existing contact record gets updated instead of creating a duplicate. This works across all form types, not just the waitlist.
Do I need to handle GDPR consent for email collection?
You should always be clear about how you will use collected emails. OperatorStack does not use cookies for analytics, which removes the cookie banner requirement. But email collection itself still needs clear consent language on your form.
Is there a limit on how many emails I can collect?
The free tier includes generous limits for pre-launch validation. Check the pricing page for current limits.