Loops vs Resend
Both are marketing tools. Here is what separates them.
What Loops is
Loops is email software aimed at SaaS teams, covering marketing, product and transactional email in one product rather than splitting them across separate tools. Emails are assembled from themes and reusable components so designs stay consistent across sends, and workflows are built from triggers, branching logic and audience filters. The free plan allows up to 1,000 subscribed contacts and 4,000 sends a month, includes unlimited team seats with no per-seat charge, and adds a Loops footer credit to every email. Paid plans put no cap on the total number of emails a team can send, and Loops charges no separate fee for those sends. Throughput differs too: free accounts are capped at 10 emails per second and paid teams at 1,000, and anything submitted above the per-second limit is queued rather than rejected. Transactional templates can be built in the visual editor or imported as MJML code, though the data variables passed into them accept only string or number values. A transactional email has to be published and its sending domain verified before the API will send it, which is the usual first thing to trip over when wiring up a new project. The API lives at app.loops.so/api and authenticates with a bearer token generated in dashboard settings. Standard endpoints allow 10 requests per second per team, while the content endpoints covering campaigns, components, email messages, themes, transactional emails, uploads and workflows are limited to 60 requests per 60 seconds per team. Requests over the limit return HTTP 429, with response headers reporting the limit and how much of it remains. Each value in a request body is capped at 500 characters including quotes. Loops publishes an OpenAPI specification in both YAML and JSON, official SDKs for Go, JavaScript, PHP, Ruby and Nuxt, and a CLI that installs by curl script or Homebrew tap and reads its API key from the LOOPS_API_KEY environment variable for use in CI. Setting up sending requires SPF, DKIM, MX and CNAME records supplied by Loops, and the recommendation is to send from a subdomain rather than the root domain. Free platform subdomains from Vercel, Netlify or Shopify cannot be used as a sending domain, which rules out the quickest route for a project still hosted on default infrastructure. Prebuilt integrations cover Stripe, Supabase, Clerk, Zapier, Make, Segment, Webflow, Bubble, PostHog, Auth0 and Framer. The Stripe integration accepts 21 event types spanning customers, subscriptions, invoices, checkout sessions, disputes and quotes, and ignores any event that arrives without an email address on it.
What Resend is
Resend is a service for building, testing and sending email from an application. It covers transactional messages, the ones triggered by something a user does, and marketing campaigns, which it calls Broadcasts. It is built for developers: sending anything at all requires a Resend API key and a domain you have verified yourself. The free plan covers 3,000 emails a month across three verified domains, along with 10,000 automation runs. Pro is $20 a month for 50,000 emails and ten domains. Scale is $90 a month for 100,000 emails and up to a thousand domains. Emails past the allowance cost $0.90 per thousand on Pro and Scale, and automation runs past the free allowance cost $0.0015 each. Scale customers sending more than 3,000 emails a day can add a dedicated IP for $30 a month. Enterprise terms are set to fit. Most of what the dashboard does is also reachable through the API. Broadcasts can be created and sent in one request, and cancelled again while scheduled or queued. Webhooks can be created, retrieved, listed and deleted programmatically, and every email webhook and GET email endpoint returns the Message-ID. Contacts import from a single CSV upload running to millions of rows. Suppressed addresses are managed from the dashboard or the API, request logs are available from anywhere, and sending statistics break down in more detail. API keys carry separate permissions, and a key exposed in public code is detected, revoked and reported to the team automatically. There is a CLI for the terminal, SDKs for several languages including an official PHP one, and support for custom headers. The template side deals with the awkward parts of email HTML. The code editor flags pasted markup that email clients will not render correctly. Templates can be organised into folders, charts can be embedded in a message, links can be turned into rich Open Graph previews, and AI prompts can reference existing content across broadcasts, templates and automations. Resend runs a hosted MCP server with OAuth built in, supporting OAuth 2.1 with PKCE, Client ID Metadata documents, an official HTTP transport and the Agent Plugins Standard. It connects to Claude in one click from the connector directory, and the MCP server and Resend skills install from the Codex plugin marketplace. Auth0 transactional email can be routed through it with an official integration, and sign-up works from inside Vercel or the Vercel CLI. A domain in use by another Resend team can be verified and transferred. The project began as open source in 2022, joined Y Combinator's winter 2023 batch and launched the sending platform that year.
We are not affiliated with either product. Upvote counts come from the published formula and neither position was paid for.