Design Studio + Journeys: The Engineering Integration Guide — cover

Design Studio + Journeys: The Engineering Integration Guide

This is the engineering guide for setting up Design Studio and Journeys. When you move notification logic to Courier, your architecture shifts from a push model to an event model. Your backend stops rendering templates and managing provider APIs directly, and starts emitting events. This guide covers both integration paths (direct API and Segment), how to structure the data object so PMs can build without asking for backend changes, error handling and idempotency, how to use test environments safely, and the specific code you can delete from your repo once it's running.

By Kyle Seyler

March 20, 2026

Courier MCP: Let your AI agent handle customer messaging end to end — cover

Courier MCP: Let your AI agent handle customer messaging end to end

The Courier MCP server lets your AI agent send notifications, manage users, debug delivery, and trigger automations. If you can do it in Courier, your agent can too.

By Mike Miller

March 19, 2026

iOS 27 UISceneDelegate push notification deadline: What breaks and how to prepare — cover

iOS 27 UISceneDelegate push notification deadline: What breaks and how to prepare

Apple is making UISceneDelegate mandatory with the iOS 27 SDK, expected September 2026. Apps that don't adopt the scene lifecycle will crash on launch, killing APNs token registration and all push notification delivery. This guide covers the full timeline, cross-platform impact for Flutter and React Native, and a practical action plan.

By Mike Miller

March 19, 2026

Your AI agent already knows how to use a terminal. Why CLIs beat MCP servers — cover

Your AI agent already knows how to use a terminal. Why CLIs beat MCP servers

LLMs already know how to use a terminal. We maintain both an MCP server and a CLI at Courier, and the difference tells you something about where AI tooling is heading.

By Mike Miller

March 13, 2026

EU Data Residency for Notifications: What Engineering Teams Need to Know — cover

EU Data Residency for Notifications: What Engineering Teams Need to Know

Courier supports EU data residency through a dedicated datacenter in AWS EU-West-1 (Ireland), with full API feature parity, same-workspace dual-region access, built-in GDPR deletion endpoints, and localization support for multilingual notifications. Engineering teams can switch to EU hosting by changing a single base URL with no workspace migration or downtime required.

By Kyle Seyler

March 09, 2026

Expo Push Notifications: The Complete Implementation Guide (SDK 52+) — cover

Expo Push Notifications: The Complete Implementation Guide (SDK 52+)

Expo push notifications are alerts sent from a server to a user's phone, even when the app isn't open. To set them up, install the expo-notifications library, ask the user for permission, and get a unique push token for their device. Your server sends a message to Expo's push service with that token, and Expo delivers it through Apple or Google. Push notifications only work on real phones, not simulators. Local notifications are different — they're scheduled by the app itself for things like reminders. You can also route Expo push through services like Courier to add email, SMS, and Slack fallbacks.

By Kyle Seyler

February 24, 2026

Best Email API Providers for Developers in 2026: SendGrid vs Postmark vs Mailgun vs SES vs Resend — cover

Best Email API Providers for Developers in 2026: SendGrid vs Postmark vs Mailgun vs SES vs Resend

Your email provider sticks with you longer than most technical decisions. Courier handles notification infrastructure for thousands of teams, so we went deep on the six email providers that show up most: SendGrid, Postmark, Mailgun, Amazon SES, Resend, and SMTP. This guide covers real API primitives, actual code from each provider's docs, Courier integration examples with provider overrides, and an honest read on where each developer experience holds up and where it breaks down. We also asked Claude to review every API and tell us which one it would wire up first. The answer surprised us.

By Kyle Seyler

February 23, 2026

The Courier MCP Server Is Open Source. Here's How It Actually Works. — cover

The Courier MCP Server Is Open Source. Here's How It Actually Works.

Courier's MCP server is open source at github.com/trycourier/courier-mcp. It connects AI coding tools like Cursor and Claude Code to your Courier account so they can send messages, manage users, and install SDKs without hallucinating API details. This post walks through the actual codebase: how 16 tool classes are registered (and how a config allowlist gates most of them), why we pull installation guides from GitHub at runtime instead of bundling them, how the DocsTools class generates live JWTs alongside setup instructions, and what the SdkContextTools class does in the repo to prevent v7/v8 SDK conflicts (even though it isn't wired into the server yet).

By Mike Miller

February 06, 2026

Cross-Channel Notification State: Why Read Receipts Are Harder Than They Look — cover

Cross-Channel Notification State: Why Read Receipts Are Harder Than They Look

When a user opens your email, does your app know? For most products, the answer is no. Each channel tracks its own state. Email has read receipts. Push has delivery confirmation. In-app has its own unread count. They don't talk to each other. Users notice. This guide covers the three approaches to notification state management (channel-first, central-first, event-first), when to use each, and how to implement cross-channel sync without overengineering. Includes state diagrams and practical implementation patterns.

By Kyle Seyler

February 03, 2026