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…

这是什么?BuzzKit 是一个开源的通知编排层:你接入自己的提供商密钥,它在一个 API 和一个仪表盘背后处理订阅者管理、定向、偏好设置、调度、工作流、重试和送达回执。
我是用托管的 buzzkit.dev,还是自己跑一个实例?两种选择都有:可以使用 buzzkit.dev 上的托管服务,也可以自托管完全相同的代码库。
怎么把开发环境跑起来?安装 Bun 和 Docker,在 API 的 .dev.vars 里设置 BETTERAUTHSECRET、CREDENTIALMASTERKEYV1 和 SQIDSALPHABET,然后运行 bun db:up 在 Docker 中启动 PostgreSQL 和 Tinybird Local,再运行 bun dev。
要真正自托管它需要什么?需要一个 Cloudflare 账户来使用 Workers、KV、Queues、Durable Objects 和 Hyperdrive,外加 PostgreSQL 和 Tinybird;完整的自托管指南仍在编写中。
现在实际能通过哪些通知渠道发送?目前只有 iOS 推送已经上线;Android、电子邮件、短信、Web 推送和应用内消息还在路线图上,属于计划中的连接器。
移动 SDK 放在哪里?iOS SDK 存放在单独的仓库 buzzkit-dev/buzzkit-ios 中,正是它让订阅者和设备状态与 BuzzKit 保持同步。
AGPL 许可证有什么要留意的?核心采用 AGPLv3,所以如果你把修改后的版本当作网络服务运行,你也有义务公开那份修改后的源码。
工作流引擎实际决定什么?工作流决定发送什么内容、什么时候发送,由你的应用和后端上报的事件触发,同时 SDK 让订阅者和设备状态持续保持同步。
有 API 参考文档吗?有,API 自带位于 /swagger 的 OpenAPI/Swagger 参考文档,另外还有一个包含各类指南的独立文档网站。
Size
9.3 MB
Stars
388
Updated
CommitSep 28
Age
1mo
Commits · 90 Days