pm-guide-1-header

The Product Manager’s Guide to Designing a Great Notification Experience

Notifications aren’t just messages—they’re a core part of your product experience. Learn how to design smarter, better-timed notifications that build trust, drive engagement, and keep users connected across every channel.

By Anwesa Chatterjee

September 15, 2022

sub-prime-crisis-header

The Sub-prime Crisis of Notifications

There is a direct connection between all the unnecessary notifications you get on your phone and the sub-prime financial crisis of 2008: lack of accountability for bad behavior.

By Nočnica Mellifera

September 14, 2022

serverless-lie-detector-header

Build a Serverless Lie Detector that uses AI for Facial Recognition

When the Face API recognizes that one of our spies is being deceitful, we will use Courier to broadcast the identity of the mole to our spy network.

By Shreya Gupta

September 12, 2022

PM internship with Courier

I Owned a Major Product Feature as a PM Intern

We wanted to learn more about Denis’ Courier internship experience, so we asked if he’d be willing to work on a writeup for us. Then what he came up with was so good, we thought it would be a great idea to share with all of you!

By Denis Tatar

September 09, 2022

ux-not-in-app-header

Building a Great UX Outside of your App

This article argues that there’s a more important user experience than the one inside your app.

By Nočnica Mellifera

September 06, 2022

Courier hackathon

Sending Secret Messages with the Courier API and Node.js

In this tutorial, we will be building a Node.js app that sends multi-channel notifications in morse code.

By Shreya Gupta

September 02, 2022

wasm-code-generation-header

Build a WebAssembly Language for Fun and Profit: Code Generation

The final phase of our compiler is code generation. This phase takes the AST and converts it to a set of executable instructions. In our case, WebAssembly.

By Drew Youngwerth

September 01, 2022

parsing-header

Build a WebAssembly Language for Fun and Profit: Parsing

In this post, we’ll cover the next phase of our compiler, parsing. Parsing is the portion of our compiler that takes the token stream generated by the lexer and converts it into an AST.

By Drew Youngwerth

August 25, 2022

jpeg-optimizer webassembly-language-lexing-header

Build a WebAssembly Language for Fun and Profit: Lexing

I decided to create this guide and provide a simple overview designed to help get your feet wet in building languages and exploring the inner workings of WebAssembly (wasm).

By Drew Youngwerth

August 18, 2022