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.

your app
<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

  • Email
  • 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.

Pro

A product with a real user base.

$39/ month

50,000 active subscribers

Start with Pro

Scale

A platform, or several products at once.

$99/ month

250,000 active subscribers

Start with Scale

Full comparison on the pricing page.