Thomas Schiavone
January 30, 2026

I’ve been living in Cursor for the past couple of months. It’s been a while since I was writing code daily, but AI IDEs pulled me back in. Staying in flow, iterating quickly, and thinking at a higher level reminded me how much I enjoy building.
When you use an AI IDE heavily, you start to notice a pattern. The model is very good at generating plausible implementations, but it has no durable understanding of domain constraints. Each prompt is treated as a fresh problem, even when the underlying system has well-defined rules, invariants, and preferred patterns.
Notifications are a good example of this. They are shaped by compliance requirements, delivery semantics, channel-specific limits, and user experience tradeoffs. Those constraints do not change often, but they are rarely obvious from a single doc page or code snippet.
Agent Skills address this by giving the model stable, opinionated context. Instead of rediscovering rules on every prompt, the AI can reason from a shared baseline. The result is guidance that is not just syntactically correct, but aligned with production reality.
That is the gap Courier Skills is designed to fill.
Agent Skills are markdown-based knowledge files that give AI IDEs durable domain context.
They provide passive guidance. When relevant, the AI reads them and applies that knowledge while generating code or architectural suggestions. Skills are well suited for encoding best practices, constraints, invariants, and recommended patterns that do not change frequently.
This is different from MCP, or Model Context Protocol.
MCP gives AI assistants active capabilities such as running queries, calling APIs, or fetching live data from external systems. It is powerful, but it requires additional infrastructure and ongoing maintenance.
The distinction is simple:
They complement each other well. Agent Skills establish the mental model. MCP enables action based on that model.
In practice, this changes how your AI IDE behaves. When you ask it to add a channel, design a notification flow, or extend an existing system, it no longer starts from a blank slate. It already understands the constraints that shape those decisions, which means less back and forth, fewer almost-right solutions, and more confidence in what you ship.
Courier Skills is a curated, open-source collection of Agent Skills for building production-grade notifications.
We built it by distilling the domain knowledge our team uses every day. This includes how different channels behave, where teams tend to run into issues, and which patterns consistently hold up in production. Instead of spreading that context across documentation, examples, and internal knowledge, we captured it in a form AI IDEs can apply directly.
The goal is not to teach your AI how to call an API. It is to teach it how to reason about notifications as a system.
Courier Skills encodes the domain knowledge required to build production-grade notifications across common channels and use cases.
Channels
Email, SMS, Push notifications, In-app Inbox, Slack, Microsoft Teams, and WhatsApp.
Patterns and guidance
Authentication and security notifications, order and billing updates, account alerts, onboarding and engagement flows, multi-channel routing, user preferences, compliance, reliability patterns, batching, and rate limits.
This is the knowledge teams usually accumulate over time. Courier Skills makes it available upfront.
Courier Skills works with Cursor, Claude Code, and other AI IDEs that support Agent Skills.
Cursor (global):
git clone https://github.com/trycourier/courier-skills.git ~/.cursor/skills/courier-skills
Cursor (project-specific):
git clone https://github.com/trycourier/courier-skills.git .cursor/skills/courier-skills
Claude Code:
git clone https://github.com/trycourier/courier-skills.git ~/.claude/skills/courier-skills
Once installed, your AI assistant can reference Courier Skills automatically when working on notification-related tasks.
We built Courier Skills for ourselves first. It led to fewer corrections, fewer surprises, and more predictable outcomes when building notification flows in AI IDEs.
If you are using an AI IDE today, install the skills and try your next notification task with them in place. Pay attention to how the model reasons, not just what it outputs.
The project is open source, and contributions are welcome.
Explore the code on GitHub:
github.com/trycourier/courier-skills
Happy building.

Customer Engagement Platforms Are Splintered. Message Orchestration Is the Fix
Customer engagement platforms are splintered. Some are built for campaigns, others for support automation, and others treat messaging as a transactional delivery problem. The result is collisions, blind spots, and message fatigue. The highest-leverage fix is solving the lifecycle-to-product and transactional vector with a message orchestration layer: one system that routes, suppresses, prioritizes, and observes messages across channels. Think air traffic control for user communications.
By Kyle Seyler
March 03, 2026

Top 8 Customer Engagement Platforms for Product-Led SaaS in 2026
Comparing Courier, Iterable, OneSignal, Braze, Customer.io, Knock, Novu, and SuprSend across orchestration, developer experience, and infrastructure primitives for product-led SaaS.
By Kyle Seyler
February 19, 2026

What are transactional notifications? Transactional email examples, transactional push, and more.
Transactional notifications are automated messages triggered by user actions or system events, like password resets, order confirmations, and payment alerts. Unlike marketing messages, they require no opt-in and have legal protections under CAN-SPAM. This guide covers what transactional notifications are, how they work across email, SMS, and push channels, real-world examples for each, and how to stay compliant. Whether you're building your first notification system or auditing an existing one, this breakdown will help you understand what belongs in each category and how to route messages correctly.
By Kyle Seyler
February 17, 2026
© 2026 Courier. All rights reserved.