[ TUTORIAL ]

Set up NightOwl with free Resend SMTP

Branded, sub-3-second alert delivery on a $0 transactional tier in about 10 minutes. Six steps, screenshots, no card.

QUICK ANSWER

Can I use Resend's free tier for NightOwl alerts?

Yes — Resend gives you 3,000 emails/month and 100/day free, with branded sender addresses (alerts@yourdomain.com) after a 5-minute DNS verify. Plug smtp.resend.com:587 + username `resend` + your API key into NightOwl's email channel form. Compared to Gmail SMTP, Resend delivers in 1-3 seconds vs. 5-30+ seconds, and lets you send from your own domain instead of a personal Gmail address. Best free option for teams that take alert latency seriously.

Updated · 2026-04-27

What you'll have at the end

A configured email alert channel in NightOwl that sends through Resend, from your own domain, with sub-3-second delivery on quiet sends. New issues, resolved issues, missed scheduled tasks, and queue failures land branded in your inbox.

END STATE

What you're aiming for: branded NightOwl alerts arriving in seconds, not minutes.

Why Resend's free tier works for NightOwl

Three properties make Resend the strongest free choice for production alerting:

  • 3,000 emails/month free — about 100/day, way more than typical alert volume.
  • Branded sender after a 5-minute DNS verify — alerts come from alerts@yourdomain.com, not a personal Gmail.
  • Dev-grade delivery speed — typically 1-3 seconds from send to inbox; meaningfully faster than free Gmail or Brevo for alert use.

Three catches worth knowing up front:

  • Shared sending IPs on the free tier. Brand-new domains with no SPF/DKIM history sometimes have their first few sends flagged by aggressive recipients (Outlook/Hotmail in particular). After ~10 successful deliveries reputation stabilizes. This is Resend's free tier, not NightOwl.
  • 100/day burst cap inside the 3,000/month allowance. Hit it and Resend returns HTTP 429. NightOwl retries with backoff, but sustained overrun means alerts queue or drop. Verify in Resend's own Logs view — rate-limited sends show there as failed, not in NightOwl's channel. Upgrade to Pro ($20/mo) lifts this.
  • Domain verification needs DNS access. If you're on a registrar without API access (or you don't own the domain), you're stuck on the onboarding@resend.dev sender, which only works for testing.

Step 1 — Sign up for Resend free

Head to resend.com and create an account. No credit card. The free tier is permanent — Resend's pricing page is straightforward about which features stay free vs. require Pro.

STEP 01

The free tier is the default. You'll only see upgrade prompts once you approach the 3,000/month limit.

Step 2 — Verify your sending domain

In the Resend dashboard, go to Domains → Add Domain. Enter your domain (e.g. yourdomain.com). Resend shows four DNS records to add:

  • SPF (TXT) — authorizes Resend to send on your behalf
  • DKIM (TXT) — cryptographic signature for outbound messages
  • MX — for return-path / bounce handling
  • Return-path (TXT) — DMARC alignment

Add all four to your DNS provider, then click Verify. Cloudflare DNS verifies in seconds; older registrars can take up to an hour to propagate.

STEP 02

Don't skip this step. The unverified-domain sender (`onboarding@resend.dev`) only delivers to your account email — useful for testing, blocked for team alerts.

If you're not ready to verify a domain yet, you can still complete the rest of this tutorial — just use onboarding@resend.dev as the From address in step 5. Your test alert will land. Production alerts will fail until you verify.

Step 3 — Generate an API key

Go to API Keys → Create API Key. Name it "NightOwl", leave permission as Full Access (Resend's free tier doesn't expose granular per-domain scoping). Click create.

Resend shows the key once, prefixed re_ — copy it. If you lose it, generate another and revoke the old one.

STEP 03

The API key is the SMTP password. Treat it like any production secret — don't commit it, don't paste it into Slack.

Step 4 — Open the NightOwl email channel form

Sign in to the NightOwl dashboard. Pick your application, then go to Settings → Issues. Scroll to the Email section and click Configure SMTP (or Add another if you already have an email channel).

STEP 04

The Email section lives under the Issues tab alongside Integrations (Slack/Discord) and Webhooks.

Step 5 — Fill in Resend's SMTP settings

Plug these values into the NightOwl email channel form:

Field Value
Channel NameOn-call Email
Hostsmtp.resend.com
Port587
EncryptionTLS
Usernameresend
Password<re_... API key from Step 3>
From Addressalerts@yourdomain.com
From NameNightOwl Alerts
To Addressesteam@yourdomain.com

The Username is literally the string resend — not your account email. This is a Resend convention; the API key is what authenticates.

The From Address must be on a verified domain (or onboarding@resend.dev for testing).

STEP 05

If the test step fails with auth errors, the most common cause is using your account email as the username instead of the literal string 'resend'.

Step 6 — Test, then subscribe to alert events

Save the channel and click Send Test. NightOwl fires a synthetic alert through Resend. On a verified domain you should see it within 3 seconds. Cross-check Resend's Logs view — every send shows there in real-time with delivery status.

Then tick which of the four issue-lifecycle events fire emails:

  • issue.new — a new exception fingerprint appears (always on)
  • issue.reopened — a previously-resolved issue fires again (recommended on)
  • issue.resolved — issue triaged closed (optional)
  • issue.ignored — issue muted (optional)

For solo triage, leave all four on. For team triage, just issue.new + issue.reopened avoids duplicate notifications when colleagues resolve issues. Resend's quota easily covers all four-event volumes — alerts only fire on lifecycle changes (not per exception occurrence).

STEP 06

Cross-reference NightOwl's channel last-delivery time with Resend's own log to confirm the path end-to-end.

When to upgrade to Resend Pro

Three signals it's time to leave the free tier:

  • You're hitting the 100/day burst cap — Pro at $20/mo lifts to 50,000/month with no daily cap, so incident bursts don't rate-limit your alerts.
  • Deliverability matters for compliance or contracts — Pro unlocks dedicated IPs (extra cost) for sender-reputation isolation.
  • You want longer log retention — free tier shows 1 day of send logs; Pro gives 30 days for forensic debugging.

Resend vs Gmail vs Brevo vs SendGrid

All four work as NightOwl alert channels. Quick decision matrix:

  • Resend — fastest, branded sender, modern dev UX. Best if you control DNS for a domain and care about alert latency.
  • Gmail SMTP — zero-config but slower (5-30s typical, 30s-2min during bursts). Good for low-stakes solo use.
  • Brevo — biggest free quota (300/day forever), strong in EU. Slightly slower than Resend; broader feature set.
  • SendGrid — industry standard, smallest free tier (100/day), aggressive rate limiting on free.

DON'T HAVE A DOMAIN YET?

Use Slack or Discord instead

NightOwl ships native Slack and Discord channels. Paste a webhook URL, done — no SMTP, no DNS, no daily caps, no domain ownership.

Email is good as a fallback when chat is down, but it doesn't have to be your primary channel.

Frequently asked questions

Can I use Resend's free tier to send NightOwl alerts?

Yes. Resend's free tier covers 3,000 emails per month and 100 per day, with branded sender support after a 5-minute DNS verification. NightOwl talks plain SMTP to smtp.resend.com:587 with `resend` as the username and your `re_...` API key as the password. Setup is about 10 minutes if you already control DNS for a domain.

Why are my Resend alerts arriving in spam or feeling slow?

Almost always one of two things, both Resend's free tier — neither is NightOwl. (1) Shared IP reputation: free-tier sends share IPs with thousands of other accounts; if your domain is brand-new with no SPF/DKIM history, recipients (especially Outlook/Hotmail) can flag the first few. (2) The 100/day burst cap inside the 3,000/month allowance — sustained alert volume blasts past it and Resend rate-limits with HTTP 429. *This is Resend's free tier, not NightOwl* — verify in Resend's own Logs view, where rate-limited messages show as failed. Both problems clear up on the Pro tier ($20/mo, dedicated IP optional, 50,000/month).

Do I need to verify a domain?

Strongly recommended. Without domain verification you can only send from `onboarding@resend.dev`, which is fine for the test alert but blocks branded production sends. Domain verification is four DNS records (SPF, DKIM, MX, return-path) and takes about 5 minutes plus DNS propagation. Cloudflare DNS propagates almost instantly; some legacy registrars can take an hour.

Should I use the Resend SMTP relay or the API?

Use SMTP — it's what NightOwl's email channel speaks. The API gives you slightly more features (idempotency keys, batch sends, scheduled delivery) but they're irrelevant for a single alert message. SMTP keeps the integration provider-agnostic, so swapping to Brevo or SendGrid later is just a credentials change.

What's the actual delivery speed?

On the free tier, well-warmed domain: typically 1-3 seconds from NightOwl's send call to inbox arrival. Brand-new domains can take longer for the first dozen sends while reputation builds. Compared to Gmail SMTP (5-15 seconds quiet, 30s-2min during bursts), Resend is meaningfully faster — which is the main reason to use it for alerts.

What happens when I hit the 100/day limit?

Resend returns HTTP 429 on the SMTP transaction. NightOwl retries with backoff up to a few times, then logs the channel as failing. Subsequent alerts queue and are dropped if the backlog grows past the channel's retry window (24 hours by default). Sustained 100/day overrun is a signal to either fix the alert noise upstream or upgrade to Resend Pro.

Can I use Resend for alerts and another provider for marketing emails on the same domain?

Yes. SPF and DKIM let multiple providers send from the same domain — Resend's published DNS records include SPF includes that compose cleanly with Postmark, Mailgun, etc. The catch is DMARC: keep the policy at `p=none` while you're mixing providers, or set up subdomain isolation (alerts.yourdomain.com for transactional, mail.yourdomain.com for marketing).

PRICING

Flat pricing. No event caps. No per-seat fees.

14-day free trial, no credit card. Your PostgreSQL, your data.

HOBBY

$5 /month

1 app · 14 days lookback · all Laravel events

TEAM

$15 /month

Up to 3 connected apps · unlimited environments · all Laravel events

AGENCY

$69 /month

Unlimited apps · unlimited agent instances · same flat rate at any traffic

Related