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
[ SCREENSHOT PENDING ]
Inbox with a NightOwl alert email from alerts@yourdomain.com via Resend, titled 'New issue: AppointmentController::store — TypeError', showing issue summary, fingerprint, count, and a 'View in dashboard' button.
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 01
[ SCREENSHOT PENDING ]
Resend signup form with email and password fields, and the dashboard onboarding screen visible after first login.
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
[ SCREENSHOT PENDING ]
Resend Domains page showing the 4 required DNS records (SPF, DKIM, MX, return-path) with copy buttons next to each, and a 'Verify DNS records' button below.
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
[ SCREENSHOT PENDING ]
Resend API Keys page showing a freshly created key 're_abc123...xyz' in a copy-button field, with a 'Done' button.
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
[ SCREENSHOT PENDING ]
NightOwl Settings → Issues tab with the Email section showing a 'Configure SMTP' button (empty state) or 'Add another' button (with existing channels).
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 05
[ SCREENSHOT PENDING ]
NightOwl email channel form filled with Resend SMTP settings: smtp.resend.com:587, TLS, username 'resend', password masked, From alerts@yourdomain.com.
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
[ SCREENSHOT PENDING ]
NightOwl alert channel events panel with checkboxes for issue.new, issue.reopened, issue.resolved, issue.ignored — all four ticked. Resend Logs panel visible alongside showing the test send as 'Delivered'.
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.