A collection of sample applications and scripts demonstrating how to integrate Courier's notification platform across web, mobile, and server environments.
The easiest way to run any sample is using VS Code's Launch Configuration feature:
- Open the Run and Debug panel (⌘⇧D / Ctrl+Shift+D)
- Select the sample you want to run from the dropdown
- Click the play button
▶️ or press F5 - Follow any prompts to enter your Courier API credentials
Before running examples, ensure you have the required tools installed for your chosen language(s).
Run the prerequisites checker to see what's installed:
bash scripts/check-prerequisites.shThis script will verify:
- ✅ Required tools (Ruby, Python, Node.js, etc.)
⚠️ Optional tools (Go, PHP, Kotlin, C#)- 🔧 Configuration (JAVA_HOME for Java/Kotlin)
Each language has its own requirements. See the README in each language directory for details:
- Ruby - Ruby 2.6+, Bundler
- Python - Python 3.7+, pip
- Node.js - Node.js 14.0+, npm
- Java - Java 11+, Maven
- Kotlin - Kotlin, Java 11+ (JAVA_HOME must be set)
- C# - .NET SDK 10.0+
- Go - Go 1.18+
- PHP - PHP 7.4+, Composer
Most samples require environment variables to be configured. You have two options:
Option A: Using the interactive script (Recommended)
The launch configurations will automatically prompt you for required variables using scripts/set-env.sh. You can also run it manually:
# From the project root, specify the directory and variables you need
bash scripts/set-env.sh --dir server/curl api_key generate_jwt_user_idThe script will prompt you for each variable interactively. If .env.example exists in the target directory, it will be used as a starting point.
Option B: Copy from .env.example and edit manually
- Navigate to the sample directory (e.g.,
server/curl/orserver/python/) - Copy the example file:
cp .env.example .env
- Edit
.envwith your actual Courier API credentials and values
Note: The .env file is gitignored and should never be committed to version control. Each sample directory may have its own .env file, or they may share one (e.g., server/curl/.env is shared by both curl and Python scripts).
- Inbox - Full-page notification center
- Toast - Toast notifications
- Popup Menu - Inbox popup menu
- Designer - Visual template editor
- Inbox - Full-page notification center
- Toast - Toast notifications
- Popup Menu - Inbox popup menu
- Android (Coming Soon 🔜)
- iOS (Coming Soon 🔜)
- Flutter (Coming Soon 🔜)
- React Native (Coming Soon 🔜)
- Expo (Coming Soon 🔜)
For complete documentation, see:
