Tier 1 — Kinetic
Full CSS interactivity
Carousels, accordions and reveals built on CSS state machines — no JavaScript, because email clients strip it. Renders in Gmail, Apple Mail, Yahoo and Samsung Mail.
The only automation platform where the emails are interactive
Send interactive emails, run courses and webinars, sell products, and answer support tickets — all from your own domain, no code, no separate tools. Smart fallbacks make every email look great in every inbox, from Gmail to classic Outlook.
Summer drop is live ☀️
Sundry Supply Co. · to me
Which colorway should we restock first?
✓ Vote recorded — thanks!
↑ This email is real — click it. Zero JavaScript, pure HTML & CSS.
Degrades gracefully everywhere email is read
How it works
One platform. Your domain. No separate ESP, no separate mailbox tool.
Pick what the email is for, like a survey, promotion, newsletter or event, and start from a real template, or from a blank canvas. Drag interactive blocks in, personalize with merge tags (placeholders like {{first_name}} that fill in per recipient), and set your brand's colors and fonts once so every new project already matches. Preview shows the exact HTML each recipient gets, Outlook included, with full undo/redo and autosave. No code, no MJML.
Verify your domain once and send natively — no ESP required, DKIM and MAIL-FROM configured for you. Trigger sends from your own code with the transactional Send API, or export production-ready HTML for the ESP you already use. The fallback engine compiles every block into three tiers so every recipient gets the richest version their client supports.
Claim any address on your verified domain: support@, hello@, billing@, or anything else you need. Incoming mail lands in a full mailbox dashboard, where you can reply, compose new threads, search, and organize everything with folders and filters. Reply to a buyer straight from their order, or connect your own Gmail or Outlook inbox alongside it, so it's all in one place.
Why MailInApp
Other tools cover one piece of this — a builder, a sending platform, or a mailbox. MailInApp is where all of it lives together on your own domain, backed by a fallback engine deep enough to trust in production.
Three real output tiers — kinetic CSS, static, and dedicated Outlook markup — compiled automatically for every block. Most "interactive email" tools bet everything on AMP, which never renders for the ~40-60% of any real audience on Apple Mail, Outlook or Proton.
Countdown timers and product-inventory badges are server-rendered images refreshed on every open, not baked in at send time — so a stale "in stock" pill never embarrasses you, without needing an enterprise real-time-personalization contract.
A Buy now block charges straight through your own connected Stripe account — inventory, refunds and shipped notices included — so one email block can be the entire sales funnel, no separate e-commerce platform required. Already selling on Shopify or WooCommerce? Import a real product's name, price and photo straight from your connected store's synced catalog instead of typing it in by hand.
Click heatmaps, a scroll-depth funnel, subject-line A/B testing and CSAT/CES/NPS rollups, all from the same dashboard as your responses — no bolting on a separate analytics tool to see what actually worked.
13 chart types, from a KPI scorecard to a Sankey diagram (a flow chart that shows how a total splits and moves between stages, useful for a sales or signup funnel). Plot typed numbers, a connected data source, or a past campaign's own results. Each chart renders as a lightweight image so it works with zero JavaScript in every client, and the real numbers sit right alongside it in a plain table.
Every interaction can stream to your own endpoint in real time, HMAC-signed, with automatic retry and a manual redeliver button if your endpoint hiccups — reliability most webhook-only integrations don't bother with.
Claim support@, hello@, or any address on your verified sending domain. Incoming email lands in a built-in mailbox — MIME-parsed, threaded, and searchable, with real folders, filters, signatures and compose. Connect your own Gmail/Outlook/Yahoo inbox too, and manage both in one place, with no new service to pay for separately.
Turn on an opt-in sender profile and a cryptographically verified card — your name, avatar and a verified-domain badge — appears next to your email inside a recipient's connected inbox, never next to anything MailInApp can't prove came from you.
Invite editors and viewers to work with you, switch between every company you belong to from one login, and get AI-drafted subject lines one click away — never auto-applied. A no-code tool that still scales past a single person building alone.
Chat with the AI copilot right in the studio and it edits your email one block at a time — grounded in your account's Brand Voice Profile so copy strictly adheres to your tone, values, and banned word list. Every change lands on your canvas through normal undo/redo. The same tool access is available to Claude Desktop, Claude Code, or any other MCP client.
Set your account-wide Brand Voice Profile and evaluate emails with a 0–100% Quality Score before sending. Inspect tone, AI buzzwords, dark mode transparent image risks, mobile above-the-fold CTA placement, and deliverability errors directly in the studio toolbar.
Full undo/redo, and theme tokens for your brand's colors and fonts, so a rebrand is one edit instead of twenty. A media library you upload to once and reuse across every project. Components you build once and drop into any project after that. And a preview that shows the actual mailed HTML, Outlook markup included, not an approximation.
Every starter template previews as the actual rendered email, not a static image. Save your own as a private team template, or publish it to the community gallery for every MailInApp user to start from — reviewed before it goes live, so the gallery stays worth browsing.
Add a Spin-to-Win wheel or Scratch-Off card to any popup signup form — no third-party plugin, no extra library. The game-layer lead magnet is configured in the form builder and rendered in the same embed snippet, with won discount codes stored on the subscriber's contact row for use in welcome emails.
A nightly policy sweep identifies contacts who haven't opened, clicked, or purchased in 60–180 days, routes them into a re-engagement journey, then auto-suppresses persistent non-responders. Sending to genuinely disengaged contacts harms deliverability for everyone on your list — the engine removes that risk automatically.
Plan your annual promotional roadmap across 12 months with a visual campaign calendar. Map out branded product drops, seasonal restocks, and global shopping events (Black Friday, Cyber Monday, Valentine's Day, Prime Day), linked directly to Studio Projects and Journey Automations.
Mint single-use, customer-restricted discount codes on your connected Shopify or WooCommerce store directly through Admin GraphQL and REST APIs — dynamically calculated at send time and auto-applied at your customer's store checkout.
Learning membership adds a hosted video course catalog, a member portal your subscribers log into with a magic link, and recurring Stripe billing — plus live sessions with chat and Q&A, or opened up as a free public webinar.
Interactive blocks
Each block ships with its interactive version and its fallbacks — you never have to think about what happens in older clients.
Swipeable image galleries with dots and arrows, driven by pure CSS. Falls back to stacked images.
One-click votes recorded straight from the inbox, with results on a hosted page.
A full multi-page survey builder: multiple choice, checkboxes, linear scale, star rating and more, optionally split across multiple pages, with per-question results — no separate survey tool required.
Server-generated animated GIF timers that keep ticking in every client — even Outlook.
Expandable FAQ-style sections that keep long emails scannable. Expands automatically where CSS is stripped.
Star ratings and NPS-style feedback captured with a single tap.
Gamified promo wheels that assign rewards — with a fair static fallback for everyone else.
Multi-question scored quizzes with server-checked answers, a pass threshold, and a results message — no lead-scoring tool required.
A scratch-to-reveal prize card, built the same reliable CSS way as the accordion — the prize just shows if the gesture isn't supported.
A Buy now button that charges through your own connected Stripe account — no storefront, no separate checkout to build.
A static preview image click-through in the inbox, a real native player on the hosted live view — link your own video file, no MailInApp hosting required.
Same idea for sound: a preview click-through in email, a working native audio player on the live view.
13 chart types — bar, line, pie, scatter, funnel and more — plus KPI scorecards. Plot typed numbers, a connected data source, or a past campaign's own results. Each one ships with a plain data table alongside it, so the numbers are still there even if the image doesn't load.
The fallback engine
Email clients disagree about everything — so every MailInApp block compiles to three output tiers, and each recipient gets the richest one their client supports.
Tier 1 — Kinetic
Carousels, accordions and reveals built on CSS state machines — no JavaScript, because email clients strip it. Renders in Gmail, Apple Mail, Yahoo and Samsung Mail.
Tier 2 — Static
When styles are stripped, blocks collapse to clean stacked content with a call-to-action link — links work in 100% of email clients.
Tier 3 — Outlook
Classic Outlook still renders with Microsoft Word. The engine emits dedicated table-based markup for it via conditional comments, so nothing looks broken.
Every email gets a hosted, fully interactive web version behind a signed, expiring link. Whatever the inbox can't render, one tap opens the real thing — no recipient accounts, no app installs.
Sending
MailInApp isn't just a builder — it's the full path from a finished email to a delivered one. Send natively from your own domain or trigger sends from your own code; if you already run an ESP, you can keep it too.
Connect your own SMTP relay, or verify a domain and send through our built-in infrastructure — DKIM, MAIL-FROM and a starter DMARC record configured for you. MailInApp is the whole platform end to end, not a piece that hands off to one.
One authenticated endpoint triggers OTPs, receipts and alerts from your own backend — freeform HTML, or a studio project rendered with your own data, fallback engine and interactive blocks included.
Bounces and complaints feed automatic, account-wide suppression, one-click unsubscribe is built into every send, and send history means you always know what already went out.
Export production-ready, client-tested HTML and send it through Mailchimp, Brevo, SendGrid, Klaviyo, or anything else that accepts custom HTML — for teams with automations and reputation already built there. Entirely optional.
Receive real mail on your verified domain — support@, hello@, or any address you claim — and connect external IMAP inboxes (Gmail, Outlook, Yahoo) to reply, compose, search and organize all your mail together in one full-featured Mailbox.
You don't need the studio to use MailInApp as your send platform. Verify your domain or plug in the Send API and start sending transactional or bulk email today — the interactive blocks and fallback engine are there if you ever want them, never required.
Receive email
Once your sending domain is verified, claim any address on it and start receiving real email — no extra service, no extra cost tier, no separate MX provider to sign up for.
Create support@, hello@, billing@, or anything else — up to the address limit on your plan. Each address is a lightweight inbox that receives real MIME mail parsed and stored securely.
Incoming messages are parsed with mailparser: HTML, plain text and attachments are all accessible. Reply inline with your own attachments and CC/BCC, forward, download attachments, or route messages through a webhook for your own automation.
All your domain addresses land in one mailbox your whole team can access — real search, archive/trash organization, and per-account filter rules, not just a flat list of forwarding rules.
Forward parsed message payloads to your own endpoint — HMAC-signed — the moment a message arrives. Power your helpdesk, CRM, or custom support queue without polling.
Start a brand-new thread to any address, or reply to any past recipient, straight from the dashboard — even a buyer from an in-email checkout. Write with your own saved signature and a full rich-text editor (bold, lists, links, tables). They reply through a private link, and the thread shows up in your mailbox the moment they respond.
Formatted text not enough? Open the same studio editor you build campaigns in, right from a thread, and send a poll, product block, or any other interactive email back as that reply — still correctly threaded, sent transactionally with no unsubscribe footer or tracking pixel.
Outbound DKIM, MAIL-FROM and inbound MX records are configured for you when you verify your domain. No MX provider to sign up for separately — receiving comes along with sending.
Any plan — including Free — lets you receive email on your verified domain. Verify once, claim your first address, and your mailbox is live. No extra service signup, no monthly mailbox fee bolted on.
Learning membership
A video course catalog, a member portal your subscribers log into, and live sessions with chat and Q&A — billed on a recurring plan through your own connected Stripe account.
Upload lesson video through the built-in pipeline — private HLS streaming, not a link to a third-party host — and organize it into courses with notes and a free-preview lesson for prospects.
Subscribers pick up right where they left off, and an optional scored comprehension quiz on any lesson checks understanding the same way the studio's Quiz block does.
Price one or more monthly or yearly plans, with an optional free trial. Subscribers sign in with a one-tap magic link — no password, no separate MailInApp account.
Stream to your subscribers with a real ingest URL, gated entirely on an active subscription — with live chat and a moderated Q&A queue running alongside the stream.
Open any live session to free public registration instead — a signup page, capacity and waitlist, a signed join link by email, and one-click reminder sends to everyone confirmed.
Learning membership runs alongside everything else in MailInApp — announce a new lesson drop or an upcoming live session with an ordinary campaign, same fallback engine included.
Data & analytics
Connect data to make every email personal, and watch interactions stream back the moment recipients engage.
Drop {{first_name}}-style tags anywhere. Preview with real rows before you export.
Store recipient data in MailInApp, connect your own API endpoint, or have your helpdesk/CRM push contact updates straight in. Credentials stay server-side, always.
Filter your audience against its own data, send a sample before the rest, then set up a recurring send that re-targets whoever matches next — daily or weekly, hands-off.
Rating blocks roll up into averages, distributions and NPS scores automatically, with breakdowns and trend over time. Flag low scores in the webhook payload or as an in-app alert email, or stream every interaction to your own endpoint with signed webhooks.
Buyers get an automatic receipt the moment payment clears, and a shipped notice the moment you mark a physical order fulfilled. A refund confirmation goes out whenever a charge gets reversed — even automatically, if a sale clears right as the last unit sells out.
Every button, image and social link is ranked by clicks, and the live view reports how far recipients actually scrolled — engagement detail most no-code email tools don't surface at all.
Split-test 2–5 subject variants on any send. Each recipient is assigned deterministically, and open/response rate per variant shows up on the same Responses page as everything else.
For developers
The same project you designed in the studio — fallback engine, interactive blocks, merge tags — can also fire from your own signup, checkout or support code. Freeform sends work too, for the classic OTP or receipt.
Read the developer quickstart →curl -X POST https://mailinapp.com/api/v1/send \
-H "Authorization: Bearer mia_live_..." \
-H "Content-Type: application/json" \
-d '{
"to": "[email protected]",
"projectId": "your-project-id",
"mergeData": { "name": "Ada", "orderId": "12345" }
}'FAQ
No. AMP only works in a couple of clients, requires per-sender registration with Google, and needs an ESP that can send a separate MIME part — most can't. MailInApp uses kinetic HTML and CSS techniques that work in far more inboxes, with automatic fallbacks everywhere else.
Nothing. Interactive emails render natively in the recipient's inbox. Where the inbox can't render interactivity, recipients get a clean static email with a link to a hosted live view — no accounts, no installs.
Classic Outlook (the Word rendering engine) gets dedicated table-based markup generated through conditional comments, plus a link to the fully interactive live view. New Outlook and Outlook.com render the static tier with selected kinetic enhancements.
No — MailInApp can send directly from your own verified domain, no ESP required. Or keep using Mailchimp, Brevo, SendGrid, Klaviyo, or anything that accepts custom HTML — export production-ready HTML and send it yourself. MailInApp hosts the interaction endpoints and analytics either way.
Yes. The transactional Send API lets your own backend trigger an email the same way you'd call Brevo, SendGrid or Postmark's send endpoint. Use it freeform for OTPs, receipts and alerts, or trigger a project you designed in the studio, with your own data standing in for a contact row.
Read the developer quickstart →Yes. The Embed API lets your own backend enroll or register your own end users into a MailInApp course or webinar, then embed the viewing or joining experience — no MailInApp account needed on their end. Every registration, reminder or completion email can render as a real interactive email you designed, not a hardcoded confirmation.
Read the Embed API quickstart →Never in the email — every email client strips JavaScript. All in-email interactivity is pure HTML and CSS. That's also why it passes spam filters like any normal email.
Two ways. The dashboard's Responses view shows everything an email collected, grouped per recipient and joined with your data source — so you see who answered, not just how many. And each project can push every interaction to your own endpoint in real time via HMAC-signed webhooks, ready for your CRM or automation stack.
Gmail clips messages over ~102KB, which silently kills CSS interactivity. The studio tracks your email's size against that budget as you build and warns you before it becomes a problem.
Yes — connect your own SMTP relay once, then send a test copy to yourself or a full campaign to your contacts straight from the dashboard, with send history so you always know what's already gone out. Every email includes a one-click unsubscribe link, and opting out is account-wide: once a recipient unsubscribes, they're suppressed from every campaign you send, not just the one they clicked from.
Yes. The rating block supports star, Likert-scale and NPS styles, with a configurable low-score alert threshold and an optional follow-up question on the hosted live view. Segment your audience, soft-launch to a sample, and schedule a recurring send for a rolling window like "resolved 3–7 days ago." Then read CSAT/CES/NPS averages, breakdowns and trend straight from the dashboard, export a CSV, or route low scores to your own webhook or an in-app alert email.
Yes. The Form block supports multiple choice, checkboxes, linear scale and star rating questions, alongside the usual text/email/date/dropdown fields, and any question can be assigned to a page. Recipients get a paginated survey with Back navigation on the hosted live view, and answers carry over between pages until they submit. Results roll up per question on the Responses dashboard, same as poll and rating blocks.
You can tell it. Pick a purpose (survey, promotion, newsletter or event) when you create a project, and browse a carousel of real starter templates for it before the studio opens with one already on the canvas. That choice also decides which number leads your Responses dashboard: response rate for surveys, recipients engaged for promotions, opens tracked for newsletters and events. It's just a starting point, though — every block stays fully editable, and you can change the purpose anytime.
Yes. Save any project as a template from the studio toolbar. Keep it private, so it's reusable by just you and your team, or make it public, so it's submitted to a community gallery every MailInApp user can start from. A public one is reviewed before it goes live, so the gallery stays worth browsing rather than a dumping ground. Either way, anything that shouldn't be reused, like a product's real delivery code, a meeting's real join link, or a countdown's actual deadline, gets cleared automatically.
Yes — the Product block drops a Buy now button into any email that charges through your own connected Stripe account, digital or physical, with an optional inventory cap. MailInApp never holds the funds or sees card details. If you already sell on Shopify or WooCommerce, an Import from store picker fills in the block's name, price and photo from your connected store's own synced catalog, so there's nothing to retype.
Yes — every order and response links to a lightweight support inbox. Start a conversation with any past recipient, or use "Contact buyer" straight from an order, and they reply through a private link with no account needed on their end. You see the whole thread, and get notified the moment they write back.
Yes — once your sending domain is verified, you can claim any address on it (support@, hello@, billing@, and so on) and start receiving real mail there. It lands in a full mailbox dashboard inside MailInApp: reply, compose, search, and organize with folders and filters, not just read. Every plan, including Free, includes at least one address.
Learn about domain email receiving →No. When you verify your domain with MailInApp, we configure the outbound DKIM/MAIL-FROM/DMARC records for sending and the inbound MX record for receiving — all in the same setup flow. There's no separate email hosting service to sign up for.
Incoming messages are delivered to your MailInApp mailbox dashboard, MIME-parsed into readable HTML and plain text with any attachments accessible. You can read, reply with your own attachments and CC/BCC, forward, archive or search from there, or configure a webhook to forward each message payload to your own endpoint — HMAC-signed — the moment it arrives.
Yes — replying uses a full rich-text editor (bold/italic/underline, headings, lists, blockquotes, links, a fixed color palette, and tables) and lets you attach files, whether the message is on your domain mailbox or a connected Gmail/Outlook account. For anything bigger than formatted text, "Reply with interactive email" opens the same studio editor you build campaigns in, with the message attached as context. It sends your project back as that specific reply, correctly threaded, with no unsubscribe footer or tracking pixel since it's a one-to-one transactional send.
Yes — connect any Gmail, Outlook, Yahoo, or custom IMAP (a standard protocol most email providers support for syncing a mailbox) account from the same Mailbox. It works as a full mail client right alongside your domain mail, in one unified view. That means real folders, compose/reply/forward with your own signature and quoting, rich-text replies with attachments, live search, per-account filter rules, and Gmail-style keyboard shortcuts (j/k, e, #). Composing a brand-new message from a connected account is the one thing still plain text for now. Everything else, including replying with a full interactive email, works the same as your domain mailbox.
Learn about native inbox rendering & IMAP sync →Turn on an opt-in sender profile — name, avatar, bio and a link, behind a handle at your own mailinapp.com/p/<handle> page — and a verified card appears next to your email inside a recipient's connected inbox. It's built only from a cryptographically signed manifest embedded in the mail we send for you, never from anything a message merely claims about itself, so it can't be spoofed by a look-alike, and it's off by default.
Learn about sender profiles →Yes. The Quiz block scores multi-question answers server-side against a pass threshold you set and shows a results message; the Scratch-off block reveals a prize on a tap, built on the same reliable CSS technique as the accordion. Both work the same way as every other block — a real interactive version where supported, and a sensible fallback everywhere else.
Yes — invite teammates from Settings → Team as an Editor (full access, except billing and credential rotation) or a Viewer (read-only). They get a branded invite email plus a banner on their own dashboard if they sign in before checking it. No separate accounts to manage per project, and solo accounts work exactly as before if you never invite anyone. If two people have the same project open at once, the second save gets a clear "changed elsewhere" warning instead of silently overwriting the first person's work.
Yes — your own account and every team you've accepted an invite into all count as separate companies, each with its own plan, contacts, and projects. A switcher in the dashboard sidebar lists all of them once you belong to more than one, so you can move between a client's account and your own (or between several clients') from a single login, with no separate sign-ins.
Yes — the studio's Theme panel sets your brand color, accent, text and background colors, font stack and button shape once, for the whole project. Buttons, social icons, form and quiz submit buttons, spin-to-win and event blocks all reference those settings. Change one, and every block using it restyles everywhere at once: the canvas, the live view, and the mailed email.
Yes — select anything on the canvas, then "Save as component" from the Inspector. It's saved to your account, not just that project, and shows up under My components in every project's block panel from then on, ready to drag in as an independent copy you can restyle freely.
If you want it to. Click the ✨ Suggest button next to the subject line and get a few AI-drafted options grounded in your project's purpose and existing copy — nothing is ever written in for you automatically, you pick what to use. For building or editing the whole email, chat with the AI Copilot in the studio toolbar instead — see the next question.
Yes — the AI Copilot panel in the studio is a real conversation: describe what you want and it edits your block tree one change at a time (add a poll, swap a countdown for a product block, restyle the theme), so a follow-up request only touches what you asked for instead of regenerating the whole email. It has access to every block type the studio ships, including layout, charts and event blocks, not a limited subset. Every change lands through the normal undo/redo, so you can always step back. Available from the Lite plan up, and the same tool access is reachable from Claude Desktop, Claude Code, or any other MCP client using your Send API key.
Read about the AI copilot →Yes — Settings → Privacy & data lets you download a complete JSON export of everything your account owns, or permanently delete the account (projects, contacts, responses, credentials, all of it) through an emailed confirmation link, with no support ticket required. Recipients get a self-service path too: every unsubscribe page includes a form to request a correction or deletion of their own data, which opens a ticket straight to you.
Read about privacy & data controls →Start free. Verify your domain, design your first interactive email in minutes, send it from your own address — and receive replies right back into MailInApp. No ESP, no separate mailbox service, no separate analytics tool.