Updated 7 October 2026

Best Email Tools for Lovable Apps in 2026

Resend is the best first pick for most Lovable SaaS apps: its Pro plan is $20 per month for 50,000 emails, and its short send call and React Email support suit a React and TypeScript codebase. This guide explains when a different sender fits better, what each plan costs, and how to wire email into a Lovable project without exposing keys.

By the editorial team of this site

The short answer

For a typical Lovable SaaS app that needs password resets, sign-up confirmations, receipts and team invites, Resend is the best starting point. Its free plan includes 3,000 emails per month and 100 per day, and the Pro plan is $20 per month for 50,000 emails per month. The send call is short, which keeps the generated code easy to read, and React Email templates let you write messages as components in the same repository as the rest of the app.

If a missed or late message would cost you customers, put Postmark first. Its entry plan is $15 per month for 10,000 emails, and it separates transactional and broadcast traffic into message streams, so a newsletter campaign does not share a sending path with your receipts. If your app also needs a newsletter or an onboarding sequence, add a marketing tool such as Loops, Buttondown or MailerLite beside the transactional sender instead of forcing one product to do both jobs.

Every price on this page was read from the vendor's public pricing page on 7 October 2026. Where a vendor does not publish a price for the volume you need, the page says so and leaves the figure out. Plans change, so confirm the number on the linked pricing page before you commit, and check the billing view, because some plans show a monthly figure and an annual figure side by side.

What a Lovable SaaS app actually sends

Before you compare vendors, list every message your app will send and sort it into one of three groups. Each group has different reliability needs and different tool requirements, and mixing them is the most common reason email setups become hard to maintain after launch.

Transactional messages are triggered by a single action from one user. Typical examples are a sign-up confirmation, a magic link, a password reset, a one-time login code, a receipt, a team invitation or a data export that is ready to download. The user is usually waiting for these messages, so a delayed or lost message becomes a support ticket. Transactional mail should go through a dedicated API with its own sending domain, and it should never depend on the reputation of your marketing list.

Lifecycle messages follow a user over time. A welcome sequence, a tip sent three days after sign-up, a reminder that a trial ends in three days, or a win-back email after a month of inactivity all belong here. They are triggered by events, but they are not urgent in the way a password reset is. They need a tool that can store user attributes, wait for a set period, branch on what the user did, and stop when the user completes an action. Loops, Brevo and MailerLite are built around this kind of flow.

Newsletters and broadcasts go to everyone who opted in, on a schedule you control. They need subscriber management, unsubscribe handling, archives and, for many creators, a public signup form. Buttondown is designed for this job, and MailerLite and Brevo also cover it, with more marketing features around the core send.

Most Lovable projects begin with the first group only. Resend, Postmark, SendGrid and Mailgun are the transactional services in this guide, and they are the right place to start. Adding a newsletter later is simpler when the transactional sender is already configured correctly, because the two streams usually share nothing more than a template library and a set of event names.

Keep one more distinction in mind when you compare prices. Some tools charge per email sent, some charge per contact stored, and some charge per credit consumed by an automation. A tool that looks cheap for a 500-person newsletter can cost far more when a product sends ten transactional messages per user per week. Estimate your monthly sends and your contact count separately, then compare the two columns of the pricing table rather than the headline plan name alone.

It also helps to write down the failure you most want to avoid. For some apps it is a password reset that never arrives. For others it is a receipt that goes out twice, a newsletter that lands in the spam folder, or a bounced address that damages the sending domain for every other message. The answer determines which tool you put first, and it determines which safeguards you ask Lovable to build.

Keeping transactional and marketing mail apart

Mailbox providers judge a sending domain by the messages it sends and by how recipients react to them. A marketing campaign with a high complaint rate can lower the delivery of messages that have nothing to do with it, if both are sent from the same domain through the same pool. This is why most deliverability advice for SaaS products starts with separating the streams.

A practical setup uses a subdomain for transactional mail, such as mail.yourdomain.com, and a second subdomain for marketing, such as news.yourdomain.com. Each one gets its own authentication records. Some providers, Postmark in particular, go further by separating traffic into named streams inside one account, so the transactional stream is isolated even though the billing is shared.

Separation also protects your roadmap. When a marketing tool is later replaced, the transactional path does not move, and the password reset flow does not need to be retested. Ask Lovable to keep the transactional send in a single server-side module, and to keep the marketing integration in a different module, so each can change independently.

Some teams find that one vendor can cover both streams well enough. That is a reasonable choice for a small product, as long as the transactional messages still have their own domain or stream and the team is clear about which tool owns which message type. The mistake to avoid is sending a password reset through a campaign tool simply because it is already open.

Getting Lovable to write email code safely

Lovable generates React and TypeScript code from prompts, and it will add a sending call to a sign-up handler if you describe the event clearly. The quality of the result depends on three things: how precise the prompt is, where the API key is stored, and whether the send runs on the server or in the browser. Vague prompts tend to produce a working send call that leaves out the parts that matter in production, such as failure handling and duplicate events.

The most important rule is that a provider API key must never reach the browser. Any value that ships to the client can be read by anyone who opens the developer tools, and a leaked key lets someone send mail from your domain under your name. Ask Lovable to place every send in a server-side function or an edge function in the backend you connect, and to read the key from an environment variable by name. Do not paste the key into a prompt or commit it to a source file.

Describe the trigger, the recipient, the template and the failure behaviour in every prompt. For example: when a new user row is created, queue a welcome email to the stored address, use the first name from the profile, record the provider's message ID, and log an error without blocking the sign-up if the call fails. A prompt that only names the service, such as "add Resend", produces code that sends mail but says nothing about what happens when the call fails or when the same event fires twice.

Ask for idempotency explicitly. Payment webhooks are retried by the provider, and a button can be clicked twice. A receipt should not go out twice because of a retry. Store a unique event ID, or a flag tied to the order, before the send, and skip the send if the record already exists. Name this check in the prompt so that Lovable builds it into the handler instead of treating it as optional.

Verify the signature of every incoming webhook before acting on it. A public endpoint that accepts any POST request can be used to trigger emails on demand, and that can be abused for spam from your domain. Stripe and most email providers document how their signatures are checked. Point Lovable at that documentation in the prompt, and ask it to reject any request whose signature does not match.

Decide where templates live before you generate the first one. React Email lets you write templates as components in the same codebase as the app, which makes them easy for Lovable to edit alongside the interface. Templates stored in a vendor dashboard keep the copy outside the repository, and then a prompt that changes the wording has to refer to a template ID rather than a file. Pick one approach per project and keep to it, because splitting the templates between two places makes changes slow and error-prone.

Finally, test with real addresses you control, in a staging environment that uses its own sending domain or sandbox key. Lovable can produce a convincing first draft of a flow in minutes, but the draft still needs a human check of the event names, the recipient logic and the content of each message before it is connected to real users.

Comparison of the main tools

Each row names the job the tool suits best, the lowest paid plan that its public pricing page lists for a Lovable project, with the plan name and billing view, and the limitation that usually matters most. Read the full entry for each tool below before you decide.

Tool Best for Entry price (plan, billing) Key limitation
Resend Transactional email from React code, with React Email templates Free: 3,000 emails per month. Pro: $20 per month (monthly billing) for 50,000 emails per month Free sending is capped at 100 emails per day
Postmark Critical transactional messages that must arrive Free: 100 emails per month. Basic: $15 per month (monthly billing) for 10,000 emails per month The free allowance is only 100 emails per month, with no overages
SendGrid Large API volume plus marketing contacts in one account Essentials: $19.95 per month (monthly billing) for the 50,000 to 100,000 email tier The product surface is wider than most Lovable projects need
Mailgun Apps that route or parse inbound email as well as sending it Free: 100 emails per day. Basic: $15 per month (monthly billing) for 10,000 emails per month The free allowance is daily, so a burst of sign-ups can hit the cap
Plunk Side projects and MVPs that pay per email Free: 1,000 emails per month. Pay as you grow: $0.001 per email Emails sent on the free plan carry Plunk branding
Loops Event-driven lifecycle emails for SaaS products Early Stage: free for up to 4,000 sends in any rolling 30 days. Growing Audience: $99 per month The free plan adds a Loops footer and reaches only the 1,000 newest contacts
Buttondown Newsletters from a blog, changelog or documentation site Free for the first 100 subscribers. Paid base price follows the subscriber slider on the pricing page Not designed for password-reset or receipt flows
MailerLite Small marketing lists with landing pages and automations Free: up to 250 subscribers and 2,500 emails per month. Comfort: $12 per month (monthly billing) for the 500-subscriber tier Price rises with subscriber count, so large lists get expensive quickly
Brevo Teams that want email, CRM and SMS in one account Free: 300 emails per day, storage for up to 100,000 contacts. Starter: $9 per month (monthly billing), from 5,000 emails per month The broad feature set adds configuration work and cost as plans grow
React Email Writing email templates as React components No price in this review; the cost is set by the sending service you pair it with It renders templates but does not send them
Make No-code workflows that connect Stripe events to an email sender Free: 1,000 credits per month. Core: $10.59 per month (monthly billing) for 10,000 credits per month Adds a second place where a message can fail, and a monthly cost

The tools, one by one

Each entry covers what the tool does well for a Lovable project, where it falls short, what its plans cost, and where to read the current pricing.

Resend

Transactional email for React-based apps

Best for: Lovable apps that send sign-up confirmations, password resets, team invites and receipts, and that want the message templates written in the same React style as the interface.

What it does well: The send call is short, which makes it easy to generate and easy to review later. React Email templates can be rendered and sent through Resend, so the component that Lovable edits in the repository is the same component that reaches users. The free plan covers 3,000 emails per month across 3 domains, which is enough to build and test the flow before any money is spent. Resend also offers a marketing product, with a free tier of 1,000 contacts that allows unlimited broadcast sending and up to 3 segments.

Where it falls short: The free sending plan is capped at 100 emails per day, so a launch day with many sign-ups can hit the limit. Resend's automation features are thinner than those of Loops or MailerLite, so a multi-step onboarding journey with branching logic is easier to run in one of those tools. Check the plan that matches your volume on the pricing page, because the Scale plan at 100,000 emails per month is listed at $90 per month, a larger step than the Pro plan.

Price: Free plan with 3,000 emails per month, 100 per day and 3 domains. Pro at $20 per month for 50,000 emails per month. Scale at $90 per month for 100,000 emails per month. For marketing contacts, the free tier covers 1,000 contacts, and the Pro marketing tier for 5,000 contacts is listed at $40 per month (monthly billing).

Resend pricing page

Postmark

Transactional messages that cannot afford to be late or missing

Best for: Apps where a password reset, a login code or an order confirmation is the core experience, and where a missing message means a lost customer or a locked-out user.

What it does well: Message streams keep transactional and broadcast traffic apart inside one account. A Lovable project can send password resets through one stream and any newsletter through another, so a campaign with a higher complaint rate does not affect the receipts. Templates live in the Postmark dashboard with variables, so copy can change without a code deploy. The activity view shows whether a given message was delivered, bounced or suppressed, which is useful when a user says a message never arrived.

Where it falls short: The free plan allows 100 emails per month with no overages, which is only enough to confirm that the integration works. Postmark is not a marketing platform, so segmentation, drip sequences and landing pages are outside its scope. A prompt that only says "send with Postmark" will leave out the message stream, so name the stream in the prompt and ask Lovable to read the stream name from an environment variable.

Price: Free for 100 emails per month. Basic at $15 per month for 10,000 emails per month. Pro at $16.50 and Platform at $18 per month for the same 10,000-email starting point. At 50,000 emails per month the listed figures are $55 for Basic, $60.50 for Pro and $66 for Platform, and at 125,000 emails per month they are $115, $126.50 and $138 (monthly billing).

Postmark pricing page

SendGrid

High-volume sending with marketing tools under one vendor

Best for: Apps that expect large API sending volumes and also want contact management and campaigns under the same vendor, or that already use other Twilio products.

What it does well: The API covers everything from a single receipt to a large campaign, and the tiers are sized for growing volume. The Marketing Campaigns free plan covers up to 2,000 contacts and 6,000 emails per month, and the paid marketing tiers raise the contact and email limits. For a Lovable app that will eventually need both API sends and a broadcast program, this avoids moving the contact list later.

Where it falls short: The product surface is wider than most Lovable projects need, and the setup extends beyond the prompt. Domain authentication, template management and list configuration are usually done in the dashboard. The Email API free trial gives 100 emails per day for 60 days, which is a trial rather than an ongoing free plan, so budget for a paid tier once it ends.

Price: Email API free trial of 100 emails per day for 60 days. Essentials at $19.95 per month for the 50,000 to 100,000 email tier. Pro at $89.95 per month for the 100,000 to 2,500,000 email tier. For marketing contacts, Basic at $15 per month covers up to 100,000 contacts and 300,000 emails, and Advanced at $60 per month covers up to 200,000 contacts and 1,000,000 emails (monthly billing).

SendGrid pricing page (Twilio)

Mailgun

Sending plus inbound routing for technical apps

Best for: Lovable projects that must receive email as well as send it, such as a support inbox that turns replies into tickets, or a workflow where an incoming message starts something inside the app.

What it does well: Routing rules can direct inbound messages by sender, recipient or content, and webhooks can post the parsed message to your Lovable backend. That makes reply handling practical without a separate mailbox service. Mailgun also documents an email validation API, which you can call during sign-up. Its logs help trace what happened to a message at each stage of delivery, which matters when you debug a production issue.

Where it falls short: The free plan allows 100 emails per day, so a busy day can reach the cap, and the allowance does not roll over. Mailgun is a developer tool at heart, with less built for non-technical marketers. If your product only sends transactional mail, a simpler sender will usually be easier to maintain.

Price: Free plan at 100 emails per day. Basic at $15 per month for 10,000 emails per month. Foundation at $35 per month for 50,000 emails per month. Scale at $90 per month for 100,000 emails per month. Mailgun describes a one-month free period on Foundation and Scale, and the figure shown applies after that first month.

Mailgun pricing page

Plunk

Pay-per-email sending for side projects and early products

Best for: Solo founders and small Lovable projects that want transactional mail and simple automations, and that do not want a fixed monthly fee out of proportion to their traffic.

What it does well: The free plan includes 1,000 emails per month, unlimited contacts, transactional sends, workflow automation, campaign broadcasts and custom domains. Pay as you grow charges $0.001 per email, or $1 per 1,000 emails, removes the Plunk branding and adds a monthly spend cap, which helps keep costs predictable while traffic is unknown.

Where it falls short: The free plan adds Plunk branding to emails, which may not suit a product with a serious brand. Its ecosystem of guides and integrations is smaller than the larger senders', so Lovable may need more precise prompts. Per-email billing is inexpensive at low volume, but a list of 100,000 people mailed every week is a different calculation and is usually better handled by a tool priced on contacts.

Price: Free plan with 1,000 emails per month. Pay as you grow at $0.001 per email. For example, 10,000 emails in a month cost 10,000 × $0.001 = $10 at the pay-as-you-grow rate, before any spend cap you set.

Plunk pricing page

Loops

Lifecycle email for SaaS products driven by events

Best for: SaaS apps that want onboarding sequences, trial reminders, feature announcements and win-back emails triggered by what users do inside the product, with transactional messages handled in the same tool.

What it does well: A Lovable backend can send user attributes and events to Loops, and an event can start a sequence that you design in the Loops interface. That keeps the timing logic out of your codebase, so changing the gap between two emails does not need a deploy. Transactional sends are included on the Growing Audience plan, so a single tool can cover a password reset and the onboarding that follows it. Non-technical team members can edit campaign copy, which suits products where marketing and engineering both touch email.

Where it falls short: The Early Stage plan is capped at 4,000 sends in any rolling 30 days to the 1,000 newest contacts, adds a Loops footer, and limits sending to 10 emails per second. Moving to Growing Audience at $99 per month is a large step for a small team. Loops is less suited to a long newsletter archive or a content site with thousands of posts, which is the job Buttondown is built for.

Price: Early Stage at no cost, with up to 4,000 sends in any rolling 30 days to the 1,000 newest contacts. Growing Audience at $99 per month, with unlimited sends to subscribers and transactional sends to users outside your audience.

Loops pricing page

Buttondown

Newsletters for a content-focused Lovable site

Best for: A Lovable project with a blog, changelog, documentation or other regular publishing, where the main email is a periodic newsletter to people who chose to subscribe.

What it does well: The free plan includes the editor, a custom sending domain and hosted archives for the first 100 subscribers. Archives and signup forms are core to a publisher, and Buttondown treats them that way. Tags and segments are an add-on, and the same add-on group covers paid subscriptions, comments and surveys, analytics and RSS-to-email. You can ask Lovable to publish new posts to the newsletter from a Markdown source, which keeps the writing workflow in one place.

Where it falls short: Buttondown is not a transactional sender, so password resets and receipts belong in a separate service. Beyond the first 100 subscribers, the base price depends on list size and is shown on the pricing slider, so check it against your own list. Automations are an add-on at $29 per month, which matters if you plan a drip sequence.

Price: Free for the first 100 subscribers, with the editor, a custom sending domain and hosted archives. Beyond 100 subscribers, the base price follows the subscriber slider on the pricing page. Add-ons, billed monthly: Tagging and segmentation at $9 per month, Automations at $29 per month, and Teams at $79 per month.

Buttondown pricing page

MailerLite

Small marketing lists with landing pages and automations

Best for: A Lovable product with a waitlist or an early audience that wants a signup page, a few automated emails and simple A/B tests in one place, without building that machinery in code.

What it does well: The visual automation builder lets you design a sequence without code, and the API lets your app add subscribers or trigger automations when something happens in the product. Landing pages and a page builder mean the signup form, the confirmation page and the first email can all sit in one tool. Subject line and content tests help you learn which message works before you scale it.

Where it falls short: MailerLite is built around campaigns and subscriber lists. Keep password resets, receipts and login codes on a dedicated transactional service, so that a campaign problem never delays them. Pricing rises with the subscriber count, so a large list becomes expensive faster than a per-email plan would.

Price: Free for up to 250 subscribers and 2,500 emails per month. Comfort at $12 per month (or $10.80 billed annually) for the 500-subscriber starting tier, where the monthly email allowance is ten times the subscriber ceiling. Power at $25 per month (or $22.50 billed annually) for the same 500-subscriber starting tier, with unlimited monthly emails.

MailerLite pricing page

Brevo

Email, CRM and SMS for teams that want one account

Best for: Lovable projects that plan to message customers by SMS as well as email, or that want a CRM record for each contact next to the mailing list. Brevo was formerly known as Sendinblue.

What it does well: The free plan allows 300 emails per day and storage for up to 100,000 contacts, which is generous for holding a list while sending volume is still small. When a user signs up in your Lovable app, the contact can be created in Brevo and tagged by plan or source. Automation and A/B testing are included from the Standard plan, along with advanced reports.

Where it falls short: The broad feature set means more configuration work, and a prompt that covers only the email send leaves the CRM and SMS parts for you to set up. The price moves sharply between tiers, and the Professional plan at $499 per month is a long step from the starter plans. Check which features actually meet your requirements before you pay for the bundle.

Price: Free with 300 daily email sends and storage for up to 100,000 contacts. Starter at $9 per month, starting at 5,000 emails per month with no daily sending limit. Standard at $18 per month from the same 5,000-email starting point, with automation, A/B testing and advanced reports. Professional at $499 per month for 150,000 to 10 million monthly sends and up to 2 million contacts.

Brevo pricing page

React Email

A template library for React code, used with any sender

Best for: Lovable projects that want email templates written as React components, kept in the same repository as the interface, so that styling and copy are edited in one place.

What it does well: Templates are components, so a prompt can ask for a welcome component that reuses the app's heading and button styles. A preview workflow lets you render a template locally and inspect the HTML before any message goes out. Because the output is plain HTML, the same template can be sent through Resend, Postmark, SendGrid, Mailgun or Plunk, which means you can change the sender later without rewriting every message.

Where it falls short: React Email does not send anything. You still need a provider and its API key, and the sending cost is set by that provider. Email clients render HTML differently, so a template that looks right in a preview still needs review in the clients your users actually use. Treat the first output from Lovable as a draft and check the markup.

Price: No price is given for React Email in this review. Your cost is the cost of the sending service you pair it with, as set out on that service's pricing page.

React Email is a template library. Read its project documentation for the current components and rendering options, and read your chosen sender's pricing page for cost.

What transactional sending costs at three volumes

For transactional mail the price follows the monthly email volume. Each cell names the plan that covers that volume and its monthly price, taken from the vendor's pricing page. Where a vendor does not list a figure at the volume, the cell says so and gives no estimate.

Emails per month Resend Postmark SendGrid Mailgun Plunk
10,000 Pro, $20 per month (50,000-email plan; the free plan stops at 3,000) Basic, $15 per month (10,000-email plan) Marketing Campaigns free plan covers 6,000 emails and 2,000 contacts; no transactional figure at this volume Basic, $15 per month (10,000-email plan) 10,000 × $0.001 = $10 per month, pay as you grow
50,000 Pro, $20 per month (50,000-email plan) Basic, $55 per month at 50,000 emails Essentials, $19.95 per month (50,000 to 100,000 tier) Foundation, $35 per month (50,000-email plan) 50,000 × $0.001 = $50 per month, pay as you grow
100,000 Scale, $90 per month (100,000-email plan) No figure listed at exactly 100,000; Basic at 125,000 emails is $115 per month Pro, $89.95 per month (100,000 to 2,500,000 tier) Scale, $90 per month (100,000-email plan) 100,000 × $0.001 = $100 per month, pay as you grow

Plunk's figures apply the pay-as-you-grow rate to every email in the month. Mailgun's Foundation and Scale plans have a described one-month free period, which the monthly figures above do not reflect. Resend's marketing and transactional allowances are separate products with separate prices.

Reading the transactional figures

At 10,000 emails per month, the cheapest paid options in the table are Postmark's Basic plan, Mailgun's Basic plan, and Plunk's pay-as-you-grow rate, which works out at $10 for the month. Plunk is the lowest figure at this volume, but it carries branding on the free plan and the paid rate is per email, so the cost moves with every extra message. Postmark and Mailgun charge a flat monthly figure for a fixed allowance, which is easier to budget for.

At 50,000 emails per month, Resend's Pro plan at $20 per month and SendGrid's Essentials plan at $19.95 per month sit close together on the list price, but the plans differ in scope. Resend's price covers the transactional sending product with React Email support. SendGrid's price is for its API sending tier, and the wider product is a separate decision. Foundation at $35 per month on Mailgun is a higher figure, which buys the inbound and routing features described earlier.

At 100,000 emails per month, the prices converge around $90 to $100 per month for most options in the table. Resend's Scale plan is $90 per month for 100,000 emails, and Mailgun's Scale plan is the same figure for the same volume. Plunk's pay-as-you-grow rate reaches $100 at this volume, which means the per-email model is no longer the cheapest choice here.

Two notes apply to every row. First, the figures are the monthly plan prices, and an annual toggle may change them, so check the billing view on the vendor's page. Second, a transactional volume is usually higher than the number of users, because one sign-up may produce a confirmation, a welcome email and a team invite. Count the messages your product sends, not only the users you expect.

What a marketing list costs at three sizes

Marketing tools are usually priced on the number of contacts or subscribers rather than on sends. The table names the plan that covers each list size, using only the figures the vendor publishes. Where a figure depends on a slider or is not published for that size, the cell says so.

Vendor 250 contacts 1,000 contacts 5,000 contacts
MailerLite Free: up to 250 subscribers and 2,500 emails per month Comfort, $12 per month (monthly billing) for the 500-subscriber starting tier; check the slider for 1,000 Subscriber figure not listed at this size in the published tiers; check the slider
Resend (marketing) Free: 1,000 contacts, unlimited broadcast sending, 3 segments Free: 1,000 contacts, the same plan Pro marketing, $40 per month (monthly billing) for 5,000 contacts
SendGrid (marketing) Marketing Campaigns free: up to 2,000 contacts and 6,000 emails per month Marketing Campaigns free: up to 2,000 contacts Basic, $15 per month for up to 100,000 contacts and 300,000 emails
Loops Early Stage: up to 4,000 sends per rolling 30 days, to the 1,000 newest contacts Early Stage covers only the 1,000 newest contacts; Growing Audience is $99 per month Growing Audience, $99 per month, with unlimited sends to subscribers
Buttondown Free for the first 100 subscribers; the paid base price for 250 is on the slider Paid base price on the subscriber slider; add-ons billed monthly on top Paid base price on the subscriber slider; add-ons billed monthly on top
Brevo Free: 300 emails per day, storage for up to 100,000 contacts Free: 300 emails per day, the same storage limit Free plan stores the list; sending above 300 per day needs a paid plan

Reading the contact figures

At 250 contacts, the free options do most of the work. MailerLite's free plan allows up to 250 subscribers and 2,500 emails per month, which fits a small waitlist exactly. Resend's free marketing tier covers 1,000 contacts with unlimited broadcast sending, so it can hold the list and send campaigns at no cost. Buttondown's free plan covers the first 100 subscribers, so a list of 250 will need the paid base price, which is set by the slider on the pricing page.

At 1,000 contacts, the choice depends on how often you send. Resend's free marketing tier still applies at this size. Loops' Early Stage plan reaches only the 1,000 newest contacts and caps sends at 4,000 per rolling 30 days, which is a useful warning that a list can outgrow a free allowance quickly. MailerLite's listed starting tier begins at 500 subscribers, so at 1,000 contacts the figure comes from the subscriber slider on its pricing page.

At 5,000 contacts, Resend's Pro marketing tier is listed at $40 per month with unlimited broadcast sending and unlimited segments. SendGrid's Basic marketing plan at $15 per month covers up to 100,000 contacts, so the list size is not the constraint there. Buttondown's base price at this size is on its slider, so the figure has to be read from the page. Brevo's Starter plan begins at a sending volume of 5,000 emails per month rather than a contact count, so confirm the contact limit on its page before you choose it for a 5,000-person list.

Two rules help when you compare these figures. A contact-based price does not change with how often you send, so a weekly newsletter and a monthly one cost the same. A per-email price does change, so a product that sends many transactional messages per user can cost more on a per-email plan than the contact count suggests. Calculate both before you commit to a plan for a growing list.

Which tool to pick for each job

Start from the job the email has to do, not from the name you have heard most often. The table gives one pick for each common job and the reason it fits.

If you need Pick Because
Password resets and receipts from React code Resend Short send call, React Email templates, and a free plan for building the flow
Messages that must arrive, kept apart from marketing Postmark Message streams separate transactional and broadcast traffic inside one account
Large API volume plus marketing contacts under one vendor SendGrid Tiers sized for growth, and a marketing product under the same account
Receiving replies and routing inbound mail into the app Mailgun Routing rules and inbound webhooks handle replies without a separate mailbox service
A side project that should cost almost nothing at first Plunk 1,000 free emails per month, then $0.001 per email with a spend cap you set
Onboarding and trial sequences triggered by product events Loops Events start sequences in the tool, and transactional sends are included on the paid plan
A newsletter from a blog, changelog or documentation site Buttondown Editor, archives and a custom sending domain, built for publishers
A small list with a landing page and simple automations MailerLite Page builder, automation builder and A/B tests in one place
Email plus SMS and a CRM record for each customer Brevo One account for channels and contacts, with a free storage tier
Email templates that live in the same codebase as the app React Email, with any sender above Templates are components that Lovable can edit, and the sender can be swapped later

How to choose between them

Choosing a tool for a Lovable project comes down to four questions. Answer them in order, because the first two usually remove most of the options.

First, what is the most important message your app sends? If it is a password reset, a login code or a receipt, choose a transactional sender before anything else. Resend is the simplest starting point for React-based apps, and Postmark is the choice when a late or missing message is unacceptable. A marketing tool can run onboarding, but it should not be the only route for a login code.

Second, does the product need to receive email? Support inboxes and reply-driven workflows need inbound parsing and routing. Mailgun is the tool in this guide built around that case. If the app only sends, you do not need inbound features, and a simpler sender will be easier to maintain.

Third, how will the cost grow? Per-email plans, such as Plunk's pay-as-you-grow rate, are inexpensive for a product with few users and become costly with many messages per user. Contact-based plans, such as Loops and MailerLite, are predictable for a stable list but expensive for a large list that sends rarely. Work out your monthly sends and your contact count, then compare both figures against the tables above.

Fourth, who edits the copy? If engineers are the only people who change emails, React Email and an API sender are enough. If a marketer needs to change a sequence without a deploy, choose a tool with a visual builder, such as Loops, MailerLite or Brevo, and keep transactional messages in a separate service so that the marketing workflow cannot affect them.

A common arrangement for a SaaS product uses two services: one transactional sender for receipts and login messages, and one lifecycle or newsletter tool for everything else. The messages users are waiting for keep a clean sending reputation, and the marketing side can change tools without touching the product's core emails.

If you are unsure, start with the cheapest option that covers your most important message, and add the second service only when a real need appears. Adding a marketing tool on day one often creates a list to maintain before there is anything to send to it.

Setup checklist for a Lovable email project

Work through these steps in order. They do not depend on which vendor you choose, and skipping one is the usual reason a working integration starts landing in spam or sends duplicates.

  1. Choose a sending subdomain. Send from a subdomain such as mail.yourdomain.com rather than the root domain used for personal or corporate mail. This keeps the reputation of the app separate from the rest of your domain.
  2. Authenticate the domain. Add the SPF, DKIM and DMARC records that your provider gives you, and wait for verification before you send production mail. Mailbox providers use these records to confirm that a message really comes from you.
  3. Store the API key on the server. Create the key in the provider dashboard and save it as a server-side environment variable. A key in browser code can be copied and used to send mail from your domain.
  4. Put the send call on the server. Ask Lovable for a server-side or edge function that the sign-up or payment event calls. The browser should request an action, never send mail itself.
  5. Make sends idempotent. Record an event ID before sending, and skip the send when that ID is already stored. Retried webhooks and double clicks should not produce duplicate receipts.
  6. Verify incoming webhooks. Check each provider's signature on every event before acting on it. An open endpoint lets anyone trigger your emails.
  7. Handle bounces and complaints. Stop sending to addresses that hard-bounce, and remove people who complain. Continued sends to bad addresses damage the reputation of the whole domain, not only the affected message.
  8. Test across inboxes. Send test messages to inboxes you control at several large mailbox providers, and check the headers and the placement. A message that works in one inbox can fail in another.
  9. Plan the switch before you need it. Keep templates in the repository where possible, and record which event names each send uses. A later move to another sender is then a change in one module, not a search through the whole app.

Checking addresses with ZeroBounce, NeverBounce and Kickbox

Every bounce costs sender reputation, and a sign-up form is the cheapest place to stop a bad address from entering your database. Dedicated verification services such as ZeroBounce, NeverBounce and Kickbox check whether an address is syntactically valid, whether its domain accepts mail, and whether the mailbox appears to exist. They are useful to a Lovable project because the check can run on the server before an account is created or a welcome email is queued.

Mailgun also documents an email validation API, which covers a similar job inside a sending account. If you already send through Mailgun, that may be enough for sign-up checks. If your sender is somewhere else, a separate verification service keeps the check independent of the sending choice.

No price is given in this review for ZeroBounce, NeverBounce or Kickbox. Pricing for these services is available on request, or on each service's own pricing page, and the figures change with volume and features. Compare the cost of a verification call against the cost of one bounce, and remember that verification is most useful when you import a list from elsewhere. A list collected through a verified sign-up form usually contains fewer bad addresses to start with.

For the sign-up flow, ask Lovable to call the verification service from the server with the key stored as an environment variable. Return a clear message to the user when an address is rejected. Keep the check fast, and do not block sign-up entirely if the service is temporarily unreachable. A reasonable fallback is a basic format check, with the result logged for later review.

Verification does not replace a confirmation email. A user who signs up with a real but mistyped address will pass a syntax check and may still bounce. A double opt-in step, where the user clicks a link in a confirmation message, proves the address works and that the person controls it. For transactional mail that a user must receive, such as a password reset, the confirmation step is the stronger safeguard.

Payment events, Stripe and no-code automation

Many Lovable SaaS apps send their most important emails in response to payments. A successful charge should produce a receipt, a plan change should produce a confirmation, and a failed charge should prompt the customer to update their card. Stripe emits webhook events for these moments, and a Lovable backend can listen for them and call the transactional sender. Stripe's pricing page describes per-transaction fees for standard card payments and does not list a monthly platform fee for that product, so check the page for the terms that apply to your account.

Before you build payment emails, check which messages Stripe already sends and which ones your app must send. Ask Lovable to list the webhook events it handles, and confirm that each one is either used or intentionally ignored. This review does not cover Stripe's own customer email features in detail, so read Stripe's documentation for the current list.

Make a clear decision about who owns each payment message. If Stripe sends a receipt, do not send a second one from your app. If your app sends a receipt, turn off the duplicate on the Stripe side. Duplicate receipts are one of the most common complaints in SaaS products, and they are usually caused by two systems that each assumed the other was silent.

If you or a colleague would rather not write webhook code, a no-code automation tool can sit between Stripe and the email sender. Make is one such tool. Its Free plan includes 1,000 credits per month, a limit of two active scenarios, and scenarios that can run at most every 15 minutes. The Core plan is listed at $10.59 per month, or $9 per month billed annually, for 10,000 credits per month, and the Pro plan at $18.82 per month, or $16 billed annually, for the same credit allowance.

A no-code scenario is convenient, but it adds one more place where a message can fail and one more monthly cost on top of the email plan. Use it when the team needs to change flows without involving engineering. For a product that already has a backend, a short server-side function is easier to test and to keep idempotent, because the event ID check lives next to the send.

Moving an existing Lovable app to a new sender

Many projects start with the free plan of one tool and move later, once volume or deliverability needs change. A move is safer when it is planned around the three things that actually break: sending domains, templates and event names.

Start by setting up the new sender on its own subdomain and authenticating it while the old sender still handles production traffic. Send test messages to inboxes you control and check placement. Do not switch the production path until the new domain has passed its checks, because a domain that has not been warmed up can deliver poorly for a while.

Move the templates next. If they live in React Email components, the move is mostly a change to the sending module. If they live in the old vendor's dashboard, export the HTML and rebuild the variables in the new tool. Check every link and every personalised field, since a missing variable is one of the most visible errors a user can receive.

Keep the old sender active for a short overlap period, with a clear rule for which events go to which sender, so no message is sent twice and none is dropped. Watch bounce and complaint rates on the new domain during the first weeks. When the old path is quiet and the new path is clean, remove the old key from the environment settings and the code.

Related guides

The main comparison on this site covers the same tools across more use cases. The guide for Cursor users covers the same sending setup from an editor-based workflow.

Frequently asked questions

Answers to the questions Lovable users ask most often about choosing and wiring up email.

Which email tool should a Lovable app use for password resets?

Resend is the simplest choice for password resets in a React-based Lovable app, because its send call is short and it supports React Email templates. Its free plan covers 3,000 emails per month, and the Pro plan is $20 per month for 50,000 emails. If a delayed reset would be a serious support problem, Postmark is the stronger choice, starting at $15 per month for 10,000 emails, because its message streams keep transactional traffic apart from marketing.

Should the email API key go in the Lovable prompt or the project settings?

Neither the prompt nor a source file. Store the key as a server-side environment variable in your project settings, and ask Lovable to read it by name. Keys in browser code can be copied by anyone, so every send should happen in a server-side or edge function.

Can one Lovable app use more than one email service?

Yes, and it is a common setup. A transactional sender handles receipts and login messages, and a lifecycle or newsletter tool handles onboarding sequences and broadcasts. Keep the two in separate modules, with separate sending subdomains, so a problem in one does not affect the other.

Which tool is cheapest for a side project that is still small?

Plunk is the lowest-cost option in this guide at small volume. Its free plan includes 1,000 emails per month, and pay as you grow costs $0.001 per email, so 1,000 emails cost $1 at that rate. The free plan adds Plunk branding, and per-email billing rises with volume, so a larger list is usually better on a fixed plan. Resend's free plan, at 3,000 emails per month, is another low-cost option for transactional mail.

How do I stop duplicate receipts when Stripe retries a webhook?

Store a unique event ID, or a flag tied to the order, before sending the receipt, and skip the send if that record already exists. Also decide whether Stripe or your app owns the receipt, so the same message is not sent by both. Name both requirements in the Lovable prompt so the handler is built with them.

Do I need a separate service to check email addresses?

Not always. Verification services such as ZeroBounce, NeverBounce and Kickbox are dedicated to the job, and their pricing is available on request or on each service's own page. Mailgun also documents an email validation API for accounts that already send through it. A double opt-in confirmation remains the strongest way to prove that an address works and belongs to the person who entered it.