In-app notifications
The bell. Not the cluster.
Most applications want one thing: a bell icon, an unread count, and a list of what happened. Getting it usually means running a multi-channel orchestration platform. NotifyBell is the bell — one container behind it, one tag in your page.
<script src="http://localhost:3105/embed/notify-bell.js" defer></script>
<notify-bell
app-id="app_…"
token="…" <!-- minted by your backend -->
api-url="http://localhost:3105"
></notify-bell>No card. 1,000 active subscribers on the trial.
What it does
- A bell with an unread badge
- An inbox with the history
- Real-time delivery
- A preference drawer
What it does not
- SMS
- Push
- Chat
- Workflow orchestration
- A cluster to run
If you need email and SMS routing too, you want a different product, and we would rather say so here than after you have integrated.
Decisions we made so you do not have to.
Nothing is missed while offline
The inbox is read from PostgreSQL, not replayed from a channel. Someone whose laptop was shut still sees what arrived, in order, when they open it.
An opt-out is never delivered
Preferences are enforced when publishing, not filtered in the browser. A notification somebody muted does not exist, rather than existing and being hidden.
Your key never reaches a browser
Your backend mints a short-lived token naming one user. The embed can read that person’s inbox and nothing else — it cannot publish, and it cannot see anyone else.
Priced by the people who actually saw something.
Monthly active subscribers, not rows in a table. A user who churned two years ago is not on your invoice.
Full comparison on the pricing page.