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.
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.devsender, 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 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.
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 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 5 — Fill in Resend's SMTP settings
Plug these values into the NightOwl email channel form:
| Field | Value |
|---|---|
| Channel Name | On-call Email |
| Host | smtp.resend.com |
| Port | 587 |
| Encryption | TLS |
| Username | resend |
| Password | <re_... API key from Step 3> |
| From Address | alerts@yourdomain.com |
| From Name | NightOwl Alerts |
| To Addresses | team@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 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).
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.