The Open Source Notification Orchestration Layer.
Notifications made easy.
Bring your provider credentials and let BuzzKit do the heavy lifting, from choosing who to notify to tracking actual delivery.
curl https://api.buzzkit.dev/v1/messages \
-H "Authorization: Bearer bk_live_…" \
-d '{
"to": "user_42",
"title": "Leg day",
"body": "Let’s go. 6:00 with Maya."
}'Send with one call. Send to a person or an audience. BuzzKit finds their devices and handles delivery.
Multi-tenant by design. One workspace, a tenant per customer, each with its own subscribers, topics and credentials, sealed off from the rest.
Your keys, your data. Your own provider credentials, encrypted, with no markup on messages and no shared provider account.
Everything you need, built in.
Choose who to reach, automate the follow-up, give users built-in control over what they receive & more.
Workflows
Build event-based workflows with waits, conditions and follow-ups, with zero custom code.
Explore workflowsSegments
Reach new users, paying customers or people who haven’t opened your app in a week.
Explore segments| user_42 | iOS | seen 2m ago |
| user_311 | iOS | seen 26m ago |
| user_178 | Android | seen 1h ago |
| user_907 | iOS | seen 3h ago |
Scheduling
Send at 9 a.m. in each user’s time zone, with quiet hours and daily limits built in.
Explore scheduling| Auckland | UTC+12 | Sent |
| Tokyo | UTC+9 | Sent |
| Berlin | UTC+2 | Sent |
| New York | UTC−4 | Releasing at 09:00 |
| Los Angeles | UTC−7 | Scheduled |
Topics & preferences
Let users choose what they receive, with preferences automatically applied to every send.
Explore topics & preferencesSources
Connect integrations or custom webhooks to trigger notifications from the tools you already use.
Explore sources| subscription.started | ||
| subscription.started | ||
| subscription.canceled | ||
| payment.failed | ||
| order.shipped | order.shipped | |
| subscription.renewed | ||
| payment.failed |
Live Activities
Start, update and end Live Activities for orders, scores and more, using the same API as your push notifications.
Explore live activitiesSee what happened to every push.
See whether a push was sent, delivered or opened, and why it failed, with automatic retries on failure.
- Automatic retries for temporary failures
- Delivery and open receipts per device
- Progress for each message
- Request retries without a second message
| Attempt | Outcome | Provider | Latency | At |
|---|---|---|---|---|
| 1 | Retrying | rate_limited | 412 ms | 09:00:04 |
| 2 | Retrying | timeout | 5,000 ms | 09:00:36 |
| 3 | Sent | 200 from APNs | 142 ms | 09:01:40 |
Add the SDK. Skip the token management.
Register your users and devices with the Swift SDK, which keeps device tokens up to date and tracks events even when offline.
- Action buttons and deep links
- Event tracking while offline
- Live Activities and push-to-start
- Targeting by push permission
// Configure once at launch with the client key
BuzzKit.configure(apiKey: "bk_pk_live_…")
// Tell BuzzKit who this device belongs to
BuzzKit.identify("user_42")
// Ask for permission and register the device token
try await BuzzKit.registerForPush()
// Track what they do. Segments and workflows react to it
BuzzKit.track("workout.completed")Let your agent set it up.
Point your agent at the BuzzKit skill and it adds notifications to your app and your backend, with agent-friendly pages it can read along the way.
Open source, top to bottom.
The API, dashboard and SDKs are fully open source. Run them yourself or use the hosted version.
git clone https://github.com/buzzkit-dev/buzzkit
cd buzzkit && bun install
bun db:up && bun devOpen source. The full product is in the repo. Nothing held back.
Self-hosted. Same API and dashboard, on your own servers.
Hosted. Sign up and start sending. No servers to run.