Blog
NOTIFICATIONS LANDSCAPECOURIER UPDATES

Best of Courier at Hackabull 2021: Speed Friender

Aydrian Howard

May 27, 2021

hackabull-2021-review-header

During the weekend of March 13th, 2021, we sponsored Hackabull, a 24 hour virtual hackathon hosted by the Society of Hispanic Professional Engineers at the University of South Florida. This was the first hackathon Courier has sponsored. We know that events are a great way to talk directly to developers and I am a huge advocate for the value a hackathon can bring to a company with a new developer focused product. In all my years as a developer advocate and a software engineer before that, I learned how valuable hackathons can be for gathering real time feedback and building community around your product. Unfortunately, due to the pandemic, attending developer events has not been a possibility and virtual events haven't felt like the best fit. After consulting with Jonathan Gottfried of Major League Hacking (MLH), he convinced me to take another look at virtual hackathons. Jonathan gave me a short list of hackathons to consider and Hackabull was near the top. This seemed like a great choice to me because I had attended their 2018 hackathon in person and knew what to expect.

From engaging with the developer community to encouraging Courier sign ups, Hackathons have countless business benefits and opportunities. My favorite part, however, is watching the participants come up with interesting and unique ways to use Courier that we may never have thought of before. What’s great about Courier is that it is quick to implement and is immediately actionable, which the team that built Speed Friender was able to take full advantage of. Speed Friender is a Discord app that provides online speed dating for friends, and most importantly, it was built in just 24 hours.

The first step to getting teams like this one ready for the Hackathon was to help them understand more about how to use Courier and the many provider integrations together, which I was able to do through a workshop at the beginning of the event. I built the workshop around my Twitch Notification blog series and I chose to use Discord since it was part of the virtual hackathon platform.

I had one hour to guide the participants through setting up an application that would accept a Twitch EventSub webhooks when a streamer started streaming and send a notification to a Discord user using Courier.

architecture-glitch-courier-twitch-eventsub

In the interest of time and to help focus the workshop on the use of Courier, I provided the participants with a Glitch application they could remix and use as a starting point. The Glitch application used Node.js and Express.js to accept POSTs from Twitch EventSub, query the Twitch API for more details, and call the Courier List Send. Once the participants created a Twitch application and updated some environment variables, they were ready to set up Courier and start building their notification.

Next, the participants created a new Courier developer account and went through the onboarding process. Once everyone was finished, we continued by setting up the Discord Integration. Courier can send messages to channels and users on behalf of a Discord Bot. Prior to the workshop, I created a Courier Bot and installed it on the Hackabull Discord Server. I shared the bot token with the participants so they would be able to send to Hackabull Discord users without having to set up their own Discord Bot.

With the Discord Integration configures, we moved on to the fun part: building the notification that would be sent when a streamer went live on Twitch. I showed the participants an example notification, how to use the stream data passed to Courier, and how to preview the notification. Then I gave them some time to be creative and ask questions.

null

Once the notification was designed and published, we created a recipient with a Discord profile and subscribed it to the twitch.stream.online list. We were able to accomplish this using a couple cURL commands

Create a recipient with a Discord profile:

Copied!

curl --request POST \
--url https://api.courier.com/profiles/YOUR_ID \
--header 'Accept: application/json' \
--header 'Authorization: Bearer COURIER_AUTH_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"profile":{"discord":{"user_id":"DISCORD_USER_ID"}}}'

Subscribe the recipient to the list:

Copied!

curl --request PUT \
--url https://api.courier.com/lists/twitch.stream.online/subscriptions/YOUR_ID \
--header 'Authorization: Bearer COURIER_AUTH_TOKEN'

Finally, with our Glitch app set up and Courier account configured, we were ready to set up our Twitch subscription to start accepting the stream online events from EventSub. We did this using the Twitch CLI.

Get broadcaster id for Twitch user:

Copied!

twitch api get users -q login=trycourier

Subscribe to the stream.online event:

Copied!

twitch api post eventsub/subscriptions -b '{
"type": "stream.online",
"version": "1",
"condition": {
"broadcaster_user_id": "YOUR_BROADCASTER_ID"
},
"transport": {
"method": "webhook",
"callback": "https://EXTERNAL_URL/webhook/callback",
"secret": "YOUR_SECRET"
}
}'

By the end of the workshop, all the attendees walked away with a working application that allowed them to start exploring the different features of Courier.

This workshop provided the Speed Friender team with the foundation they needed to build an application worthy of the Best Use of Courier prize.

The Speed Friender team was made up of members Mara Hart and Danielle Zevitz. Mara and Danielle are both computer science majors at the University of Virginia and Major League Hacking coaches. Mara helped found the UVA chapter of Girls Who Code and enjoys showcasing her personal projects and helping others get started coding on Twitch. Together they were inspired to build Speed Friender after noticing that new students were having trouble connecting with others due to the pandemic. To make up for the lack of spontaneous connection, they created a Discord bot that would facilitate creating connections between members and creating rooms for private conversations.

After setting up their Courier accounts to use Discord during the workshop, Mara and Danielle started looking into the capabilities of Discord bots. After a little research, they were able to create their own Discord bot and install it into their own Discord server. They handed the bot logic by adding Discord.js to the Remixed Glitch application from the workshop. After updating their Discord Integration to use their bot, they added Twilio for SMS and PostMark for email. Now using a single API call, the Discord bot is able to notify members when they have a new match using their preferred channel.

They plan to continue developing this project with their Girls Who Code chapter and put it into practice in their Discord server.

I was personally very excited about this project. The Discord Integration was my Fall 2020 Dispatch Project so it was great to see it being used at a hackathon. This project also inspired some new features I'd like to add to Pigeon Bot in our Courier Community Discord Server. Having a bot be able to spin up private rooms and then tear them down would be great handling community support requests that involve sharing sensitive information.

Similar resources

Courier Inbox
Product ManagementNotifications Landscape

Your Notification Center, Your Competitive Edge

The in-app inbox is the most valuable notification surface you own. Every other channel has a gatekeeper: push, email, and SMS all run through someone else's filters. The inbox is the one surface where you set the rules. Courier Inbox ships as a drop-in component backed by a hosted API that stores messages, syncs read state across devices in real time, and integrates with your other channels. SDKs for React, Web Components, React Native, Flutter, iOS, and Android. Install it with an AI coding agent or a few lines of code. Theme it, customize the renderers, or go fully headless.

By Kyle Seyler

April 22, 2026

5 Best Platforms for Product Messages 2026 - Header
Notifications LandscapeUser ExperienceProduct Management

5 Best Platforms for Product Messages in 2026

Product messages are a requirement for every SaaS product, but most teams outgrow their initial setup fast. You start with one email provider, add push, then SMS, and suddenly you're maintaining multiple integrations with no shared routing, no preference management, and every copy change requires a deploy. This guide compares five platforms that solve different versions of this problem: Courier for cross-channel messaging with AI tooling, Resend for developer-friendly transactional email, Customer.io for marketing-adjacent journeys, Supabase for built-in auth emails, and Novu for open-source self-hosted infrastructure.

By Kyle Seyler

April 15, 2026

how to send notifications from an ai agent
AIGuideNotifications Landscape

How to Send Notifications from an AI Agent with Courier's MCP Server

AI agents handle support tickets, monitor pipelines, run onboarding flows, and sync CRM data. When they do, someone needs to know what happened. Courier's MCP server gives agents direct access to the full notification API: send across email, push, SMS, Slack, and in-app. Check user preferences before sending. Trigger batch and digest Journeys so high-volume agents don't spam users. This guide covers MCP server setup, CLI tooling, Courier Skills for your IDE, and five real-world patterns with starter prompts.

By Kyle Seyler

April 10, 2026

Multichannel Notifications Platform for SaaS

Products

Platform

Integrations

Customers

Blog

API Status

Subprocessors


© 2026 Courier. All rights reserved.