Mike Miller
April 30, 2026

Table of contents
Courier workspaces now support fully isolated custom environments. Name them whatever makes sense for your team (dev, staging, QA, production), give each one its own integrations and templates, and promote assets between them when you're ready.
Previously, you got two environments: Production and Test. That worked for simple setups, but it didn't reflect how most teams actually build software. If you had separate staging and QA phases, or multiple squads iterating on different messaging flows, you were cramming all of that into a single Test environment. That's over.
Each environment is a complete, isolated workspace. Templates, brands, tags, subscription topics, integrations, journeys, API keys, and logs all belong to that environment alone.
Nothing leaks between environments. Changes to templates in your dev environment don't touch staging. A new integration configuration in QA doesn't affect production. Journeys, notification logic, and provider configs are all scoped to the environment they belong to. Each environment has its own message logs and metrics, so you always know exactly what happened where.
Production stays Production. Everything else is yours to name. Rename the default Test environment to "Development," create a "Staging" environment, add "QA" for your testing team. The names map to your process, not ours.
Each environment gets its own integration configurations. Connect your staging SendGrid account to your staging environment and your production account to production. No more shared integrations with test overrides bolted on. Cleaner setup, fewer surprises.
Move templates and their dependencies (brands, tags, subscription topics) between any two environments. Promote from dev to staging, staging to production, or roll something back from production to QA for debugging. The migration flow copies all dependencies automatically so nothing breaks.
Each of these used to require workarounds: shared Test environments, naming conventions to avoid collisions, or separate Courier workspaces entirely. Now it's a first-class feature.
Custom environments are available today on all plans.
Or start with the docs to see the full details.
Already using Test and Production? Nothing changes for you unless you want it to. Your existing environments work exactly as before. You can rename your Test environment and create additional ones whenever you're ready.

Human-in-the-loop for AI payment agents: building approval notifications that work
AI agents need human approval before taking consequential actions: financial commitments, irreversible changes, decisions that affect other people. This post covers how to design those checkpoints and build the notification infrastructure: multi-channel delivery, live context, escalation, and a back-and-forth question loop between reviewers and the agent.
By Eric Lee
May 26, 2026

Create a customer journey from AI coding agent
Use Courier's Journey API to create multistep customer engagement workflows from your coding agent of choice. Describe the kind of journey you'd like to create, answer a few questions, and publish to the platform.
By Kyle Seyler
May 20, 2026

CocoaPods end of life: here's what to do
CocoaPods has been the default iOS dependency manager for more than a decade. On December 2, 2026, its central registry becomes read-only. Here's what that actually means for native iOS, React Native, and Flutter apps.
By Mike Miller
May 14, 2026
Β© 2026 Courier. All rights reserved.