buzzkit README

The project's README from github.com/buzzkit-dev/buzzkit. As one markdown file: README.md.

BuzzKit

BuzzKit

The Open Source Notification Orchestration Layer

Learn more »

Introduction · Self-Hosting · Development · Roadmap · Contributing

BuzzKit

Introduction

BuzzKit is an open source orchestration layer for notifications. You bring the keys for your providers, and BuzzKit gives you subscriber management, targeting, preferences, scheduling, workflows, retries and delivery receipts through one API and one dashboard.

It is designed to be integrated once and driven by events from then on. The SDK keeps users and devices in sync, your app and backend report what happened, and workflows decide what to send and when. BuzzKit supports iOS push today, with Android, email and SMS planned as connectors on the same multi-channel core.

Use BuzzKit at buzzkit.dev or self-host the same code. Guides and the complete API reference are available in the documentation.

Self-Hosting

A complete self-hosting guide is coming soon. For now, deployments require a Cloudflare account for Workers, KV, Queues, Durable Objects and Hyperdrive, together with PostgreSQL and Tinybird. We plan to simplify this setup in future releases.

Development

You need Bun and Docker.

bun install

bun db:up

cp apps/api/.dev.vars.example apps/api/.dev.vars
cp apps/web/.dev.vars.example apps/web/.dev.vars

bun run --cwd packages/database db:migrate
bun run --cwd packages/tinybird push

bun dev

bun db:up starts PostgreSQL and Tinybird Local in Docker. Before the first start, set BETTER_AUTH_SECRET, CREDENTIAL_MASTER_KEY_V1 and SQIDS_ALPHABET in the API's .dev.vars; the example file explains how to generate each value. Run the Tinybird push once for every fresh container to load its event tables and endpoints.

App Address
API http://localhost:8790, with the OpenAPI reference at /swagger
Dashboard http://localhost:5180
Marketing http://localhost:5181
Docs http://localhost:5182
apps/
├── api/            The API, a Cloudflare Worker
├── web/            The dashboard
├── marketing/      buzzkit.dev
└── docs/           docs.buzzkit.dev

packages/
├── buzzkit/        The server SDK
├── schema/         The grammars the API and the dashboard both validate: workflows, sources, imports
├── database/       Drizzle schema and migrations
├── auth/           BetterAuth configuration
├── eden/           The typed API client the dashboard uses
├── observability/  Logging and tracing
├── tinybird/       The event stream as code
└── ui/             The design system

The iOS SDK lives in its own repository: buzzkit-dev/buzzkit-ios.

Command Description
bun dev Start every app
bun run test Run the unit suites; from apps/api, the same command runs the integration suite with its own server
bun lint Biome plus the repository's conventions checker
bun check-types TypeScript across every package
bun format:fix Format

Roadmap

BuzzKit supports iOS push today. Other channels will arrive as connectors that share the same subscribers, segments, topics and workflows:

Contributing

BuzzKit is still in beta, so we're being careful about what goes in. While that's the case, pull requests are limited to the core contributors, and the best way to help is through issues. Bug reports and feature ideas are always welcome, and we read every one.

License

The core is licensed under the GNU Affero General Public License Version 3 (AGPLv3).

buzzkit (buzzkit-dev/buzzkit)

Searching Database…

What is this?BuzzKit is an open source orchestration layer for notifications: you plug in your own provider keys, and it handles subscriber management, targeting, preferences, scheduling, workflows, retries and delivery receipts behind one API and one dashboard.
Do I use the hosted buzzkit.dev or run my own instance?Both options exist: use the managed service at buzzkit.dev, or self-host the exact same codebase.
How do I get a development environment running?Install Bun and Docker, set BETTERAUTHSECRET, CREDENTIALMASTERKEYV1 and SQIDSALPHABET in the API's .dev.vars, then run bun db:up to start PostgreSQL and Tinybird Local in Docker before running bun dev.
What do I need to self-host this for real?A Cloudflare account for Workers, KV, Queues, Durable Objects and Hyperdrive, plus PostgreSQL and Tinybird; a full self-hosting guide is still being written.
Which notification channels can I actually send through today?Only iOS push is live right now; Android, email, SMS, web push and in-app messaging are still on the roadmap as planned connectors.
Where does the mobile SDK live?The iOS SDK is kept in a separate repository, buzzkit-dev/buzzkit-ios, and it's what keeps subscriber and device state synced with BuzzKit.
What's the catch with the AGPL license?The core is AGPLv3, so if you run a modified version as a network service, you're obligated to share that modified source too.
What does the workflow engine actually decide?Workflows decide what to send and when, triggered by events your app and backend report, while the SDK keeps subscriber and device state continuously in sync.
Is there an API reference available?Yes, the API ships with an OpenAPI/Swagger reference at /swagger, alongside a separate documentation site with guides.
Size
9.3 MB
Stars
388
Updated
CommitSep 28
Age
1mo
Commits · 90 Days