Latest engineering blog posts
Why You Can't Replace REST with GraphQL
The question isn’t necessarily which one is better to use, but which one is better to use for specific c...
July 08, 2021
How to Add a Notification System to your MVP
At the MVP stage, developers focus on finding product-market fit for their venture. On the one hand, thi...
July 01, 2021
How We Built React Components for Any Front End
To make sure teams don’t need to build an in-house solution for a notification systems problem, we adapt...
June 30, 2021
Who Knew Email Subjects Are So Complicated
Here is our journey into email subjects upon finding out that Microsoft Outlook didn’t work with certain...
June 10, 2021
The Three Things to Never Build In Your App: Authentication, Notifications, and Payments
In this post, we use Auth0’s post-user registration hook and Courier’s automations feature to learn how ...
May 13, 2021
How We Kept Datadog From Blowing Up Our AWS Bill
When Courier’s AWS billings suddenly increased, CTO Seth Carney discovered that data insights tool Datad...
May 06, 2021
Follow These Considerations For An Effective Push Notification System Design
Push notifications are generally an effective mechanism for user engagement, but it's no longer enough t...
April 01, 2021
How to Design a Scalable Notification System
Creating the perfect notification strategy is like walking a tightrope of constantly changing do’s and d...
March 16, 2021
Top 6 Push Notification Services for Developers in 2021
Looking to send push notifications for your application? We compare the top push notification APIs for d...
March 11, 2021
Build vs. Buy: What’s better for a transactional email notification service?
Comparing the advantages and disadvantages of building your own notification system for transactional em...
March 09, 2021
Three Ways to Send Emails Using Python With Code Tutorials
Learn how to send an email in your Python application with SMTP, with a transactional email API, and wit...
March 04, 2021
How to Send Emails with Node.js [3 Different Ways + Code Tutorials]
Learn how to send an email in your Node.js application with Nodemailer and SMTP, with a transactional em...
February 23, 2021
Top 6 Transactional Email Services for Developers in 2021
Looking to send transactional emails for your application? We compare the top transactional email API se...
February 09, 2021
Twitch Notifications (Part Three): How to Create and Notify a List of Subscribers Using Courier
In this tutorial, Aydrian will show you how to extend the Node.js and Express app from part two to send ...
February 04, 2021
Twitch Notifications (Part Two): How to Send Notifications When Your Twitch Stream Goes Live
In this tutorial, Aydrian will show you how to listen for events from Twitch and then create and trigger...
January 28, 2021
Twitch Notifications (Part One): How to Handle Real-Time Events from Twitch
This series will show you how to use Twitch EventSub and Courier to automatically send notifications to ...
January 21, 2021
Tips and Tricks to Set Up Your Apple M1 for Development
Software Engineer Chris Gradwohl details some tips and tricks around setting up a new Apple M1 machine f...
January 19, 2021
How to White Label Email Notifications for Multiple Brands
If you've ever had to whitelabel emails manually, you know how much of a headache that can be. Here's ho...
December 15, 2020
How to Send Emails with Attachments Using Amazon SES and S3
In this tutorial, you'll get a step-by-step walkthrough of how to add attachments to your transactional ...
December 02, 2020
Tutorial: How to Send Email in a Ruby App
In this tutorial, we’ll show you an easy way to add email functionality to your Ruby app. You’ll learn h...
December 01, 2020
Why We Are Moving off REST and Implementing GraphQL
We’re excited to be moving Courier’s internal infrastructure and eventually our customer-facing APIs to ...
November 17, 2020
How to Add a Direct Twilio SMS Integration With Sendgrid Emails
In this white paper, we share the strategies we have discovered through our work in building direct inte...
October 27, 2020
What to consider when standardizing your REST APIs
Recently, we’ve been working on standardizing some aspects of Courier’s REST APIs, such as naming conven...
October 06, 2020
Standardizing Message Status Across SendGrid, Twilio, Slack, Firebase, and More
I wanted to share how statuses work today in Courier and some of the things we thought through while bui...
September 17, 2020
Announcing the Courier Destination for Segment – Send Multi-Channel Notifications With No Code
We’re excited to announce the Courier destination for Segment is publicly available. Product teams can n...
November 10, 2020
9 Ways Product Management Expectations Differ from Reality
As a former product manager, bright-eyed and bushy-tailed out of college, I remember clearly coming into...
September 01, 2020
How to Use The Shadow Dom To Isolate Styles on a DOM That Isnt Yours
Shadow DOM is an API for DOM encapsulation. It's perfect for when you need to embed a widget in a DOM yo...
August 18, 2020
Why Event Driven Architecture Works for Courier
Event-Driven Architecture: how it works, why we use it at Courier, and what our experience has been like...
August 11, 2020