- Category
- Notifications & Alerting
- Status
- Live
- Platforms
- Web, API
- Stack
- Next.js, React, Prisma, PostgreSQL, Redis, Lit, Auth.js, Stripe, Tailwind CSS
NotifyBell is an embeddable in-app notification centre — a bell icon with an unread badge, inbox history, real-time delivery and a preferences API — dropped into any web app with a single custom element. It is built for teams who want the notification-bell experience without running a full multi-channel orchestration platform.
NotifyBell renders as a single custom element that works unchanged across React, Vue, Svelte, Rails or a plain page, inside a shadow root so host CSS can't leak in or out. A backend mints a short-lived, signed subscriber token naming the logged-in user — the API key that can publish notifications never reaches the browser.
Publishing is a single REST call with an optional dedupe key so retries don't double-notify. Postgres is the source of truth and Redis only fans delivery out, so a subscriber who was offline still sees what they missed on reconnect rather than losing it to an unreplayed channel.
Notification preferences are enforced server-side at publish time: an opted-out notification is never delivered, not merely hidden in the UI after the fact. Pricing is based on monthly active subscribers rather than database rows.
- Bell, badge, inbox
- A bell icon with unread badge and paginated inbox history, delivered in real time via a single custom element.
- Mint a token in your backend
- Your backend signs a short-lived token naming the logged-in user; the signing key that can publish notifications never reaches a browser.
- Publish from your backend
- A REST endpoint creates subscribers on first publish and supports a dedupe key so a retried call doesn't double-notify.
- Framework-agnostic embed
- The same custom element works unchanged in React, Vue, Svelte, Rails or a plain page, with exposed styling parts for theming.