How Resend works for entrepreneurs and small teams
Filed under Guide
By Gerald · 21 June 2026
Most email platforms feel like they were built for marketing teams and then adapted for developers. Resend is the opposite.
It was built by developers who were tired of cluttered dashboards, legacy APIs, and template systems that live outside the codebase. For a bootstrapper or a small technical team, that origin matters. It means the setup is fast, the pricing is readable, and the product gets out of your way so you can focus on building.
This is exactly how Flow handles email. We send password resets, admin invites, newsletter confirmations, and reminder notifications through Resend. The entire integration, from signup to first production send, took less than an afternoon.
A good email setup should feel boring. Resend makes email boring in the best way possible.
Signing up and creating an API key
Start at resend.com. The signup process is standard: email and password, plus a workspace name. There is no credit card required for the free tier.
Once you are inside, the first step is generating an API key. Go to the API Keys section, create a key, and copy it. Resend lets you scope keys by permission, so you can create a sending key for production and a separate key for local development. That small detail prevents accidents.
Store the key in your environment variables. Never commit it to your repository. If you are using Vercel, Convex, or another platform with secrets management, add it there.
Verifying your domain

Resend requires domain verification before you can send email. This is a good thing. It protects the shared IP reputation and forces you to set up authentication early.
Add your domain in the Resend dashboard. It will give you DNS records to add at your registrar or DNS provider. Usually there are three records:
- An SPF record that authorizes Resend's servers to send on your behalf.
- A DKIM record that cryptographically signs your emails.
- A custom return-path or DMARC record that helps with bounce handling and fraud protection.
Add these records, wait a few minutes for propagation, and click verify in the dashboard. Resend checks them automatically and tells you if anything is wrong.
For Flow, I use Cloudflare for DNS. Adding the records took about two minutes, and verification was instant. If your DNS provider has a slow propagation time, it might take longer.
What SPF and DKIM actually do
SPF and DKIM, plus DMARC, are the three mechanisms that prove your email is legitimate. You do not need to understand them deeply, but you should know what problem each solves.
SPF is a list of servers allowed to send email for your domain. When Resend sends on your behalf, the receiving server checks that Resend is on your approved list. Without it, your email is more likely to be flagged as suspicious.
DKIM adds a digital signature to every email. The signature is verified against a public key stored in your DNS. This proves the email was not modified in transit and that it came from an authorized sender.
DMARC tells receiving servers what to do if SPF or DKIM fails. It also generates reports so you can see if someone is trying to spoof your domain.
Resend gives you the exact records for all three. You copy and paste them, then verify. Most startups do not need to tune these beyond the defaults Resend provides.
Sending your first email
With the domain verified and the API key stored, you can send email from your application.
If you use Node.js, install the Resend SDK:
npm install resend
Then send an email:
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
from: 'Your App <hello@yourdomain.com>',
to: 'user@example.com',
subject: 'Welcome',
text: 'Thanks for signing up.',
html: '<p>Thanks for signing up.</p>',
});
That is the entire integration for a basic send. The SDK handles retries, error formatting, and response parsing. You get back an email ID you can use to track the message in the dashboard.
Building templates with React Email
Plain text and inline HTML work for simple messages. For anything more structured, Resend's sibling project, React Email, is the best template system I have used.
You write email templates as React components. The library includes components for layout, buttons, and images, plus text, that render to table-based HTML compatible with Outlook, Gmail, Apple Mail, and the rest.
Install React Email in your project:
npm install @react-email/components react-email
Create a template component:
import { Html, Head, Body, Container, Text, Button } from '@react-email/components';
export function WelcomeEmail({ name }: { name: string }) {
return (
<Html>
<Head />
<Body style={{ fontFamily: 'sans-serif' }}>
<Container>
<Text>Hi {name},</Text>
<Text>Welcome to the app. Here is how to get started.</Text>
<Button href="https://yourapp.com/start">Get started</Button>
</Container>
</Body>
</Html>
);
}
Render the component to HTML and pass it to Resend:
import { render } from '@react-email/render';
import { WelcomeEmail } from './emails/welcome';
const html = await render(WelcomeEmail({ name: 'Gerald' }));
await resend.emails.send({
from: 'Your App <hello@yourdomain.com>',
to: 'user@example.com',
subject: 'Welcome to the app',
html,
});
The templates live in your codebase. They are version controlled, type checked, and reviewed in pull requests. You never have to log into a dashboard to edit a template or worry that a designer changed something without telling you.
Flow uses React Email for every transactional message. The password reset, admin invite, and newsletter confirmation are all components. When I need to change copy or styling, I edit code and deploy. There is no separate system to sync.
Monitoring deliverability
Sending email is only half the job. Knowing what happened afterward is the other half.
Resend's dashboard shows sends, deliveries, bounces, and clicks. You can filter by date, domain, and status. For any single email, you can view the full timeline from sent to delivered or bounced.
Set up webhooks to receive real-time events. Point Resend at an endpoint in your application, select the events you care about, and it will POST JSON whenever something happens. Common events to track are email.bounced and email.complained. You should suppress addresses that bounce or complain to protect your domain reputation.
For Flow, we store bounce events in Convex and automatically flag accounts with repeated bounces. That keeps the list clean without manual work.
You should also watch your domain reputation through the dashboard. Resend surfaces complaints and bounces, plus unsubscribes, in one view. If any metric spikes, you know there is a problem before it becomes a deliverability crisis.
Why bootstrappers love Resend
There are three reasons Resend is popular among founders running lean.
Pricing is predictable. The free tier covers 3,000 emails per month. The Pro plan is $20 for 50,000 emails. There are no contact storage fees, no overage surprises, and no mandatory upsells. You know what you will pay before the bill arrives.
Setup is fast. Domain verification, API integration, and first send can happen in one session. You do not need a DevOps specialist or a day of reading documentation. For a founder who needs to ship features, that time matters.
The API stays out of the way. Resend does not try to become your CRM, your marketing automation suite, or your customer support platform. It sends email. You call it when you need to send, and you ignore it the rest of the time.
That focus is refreshing. Most email platforms expand until they do everything poorly. Resend does one thing well and lets the rest of your stack handle the rest.
What to do when you grow
Resend scales to millions of emails per month on its Pro and Enterprise plans. For most startups, that ceiling is far above where they will be for years.
If you outgrow Resend, the migration is simple because your templates live in code and the API is standard REST. You are not locked into a proprietary template language or a complex dashboard configuration. Moving to SendGrid, Mailgun, or AWS SES is a matter of changing the API client and updating DNS records.
That portability is intentional. Resend respects that your email infrastructure is a utility, not a kingdom to defend.
Frequently asked questions
How do I set up Resend? Sign up at resend.com, generate an API key, verify your domain by adding the DNS records provided, and install the SDK in your application. You can send your first email within minutes of domain verification.
Is Resend good for startups? Yes. Resend is particularly good for technical founders and small teams who want a clean API, simple pricing, and fast setup. The free tier covers early usage, and the Pro plan is affordable as you grow.
How much does Resend cost? As of June 2026, Resend offers a free plan with 3,000 emails per month, a Pro plan at $20 per month for 50,000 emails, and Enterprise pricing for custom volume. Check the official pricing page for current rates.
How do I monitor email deliverability with Resend? Use the Resend dashboard to track sends, deliveries, bounces, and clicks. Set up webhooks to receive real-time events in your application. Monitor bounce and complaint rates, and suppress problematic addresses to protect your domain reputation.
Can I use Resend without React Email? Yes. Resend accepts plain text and HTML strings. React Email is an optional integration for teams that want code-based templates. You can use any templating system you prefer.
Does Resend handle incoming email? Resend focuses on outbound transactional and broadcast email. For inbound email parsing or routing, you may need a separate service such as Mailgun or a custom AWS SES setup.
Related reading
- Resend review: email for developers who have tried everything else
- Resend vs SendGrid: developer email, compared
- Best transactional email API for startups in 2026
- Why I built Flow
My verdict
Resend is not the only email service that works for startups, but it is the one that requires the least negotiation to get started.
The setup is fast, the API is clean, the pricing is honest, and the React Email integration removes one of the worst chores in web development. For a bootstrapper who would rather build product than manage infrastructure, that combination is hard to beat.
If you have been putting off your email setup because it sounds complicated, Resend is the reason to stop procrastinating. Verify your domain, send a test email, and move on to the work that actually matters.