Notifications your users actually get.

The developer-first alternative to OneSignal: push, email and SMS on your own accounts, in-app inbox, live messages and native attribution through one idempotent API, with per-device delivery logs that show you the raw provider response, not a shrug.

Free tier forever · first notification in ~10 minutes · sign in with GitHub or Google

import { Notibase } from "@notibase/node";

const nb = new Notibase(process.env.NOTIBASE_KEY);

await nb.messages.send({
  audience: { filter: { attr: "country", op: "in", value: ["NP","IN"] } },
  content:  {
    title: "Hello {{first_name | default: 'there'}} 👋",
    inapp:  { title: "Also in their inbox" },          // persists
    live:   { title: "…and on screen right now" },      // instant banner
    email:  { subject: "And in their email", html },     // your SMTP
    sms:    { text: "…and a text, if it matters" },      // your gateway
  },
});  // idempotent by default, retries can never double-notify

One send call. Push to their device, email through your SMTP server, SMS through your gateway — addressed to a person, not to a device, so the last two reach people who never installed anything.

POST /v1/messages
audience { segment_id }
content  { title, email, sms }
Push · iOS
Your order is on its way
Out for delivery, arriving before 6 PM.
✓ sent
Email · your SMTP
Your order is on its way
[email protected] — tracking inside
✓ sent
SMS · your gateway
+977 98…5678
Order shipped. Track it: nb.co/x9
✓ sent
Supported by MSecurity Darlivo

Why Notibase

Built by developers who got burned by the incumbents

Every feature exists because the alternative was a support ticket.

🔍

Every send, debuggable

Per-device delivery timelines with the raw APNs/FCM/browser response preserved, plus AI explanations of any error code. No more "it says delivered".

Integrate in minutes

Zero-dependency SDKs for Web, iOS, Android, Flutter and Node. No version conflicts, no bloat, first push on your own screen in ~10 minutes.

📱

Every platform, one API

Web push, APNs and FCM behind a single send call. Write the notification once; we handle each platform's quirks, tokens and retries.

🎯

Typed, honest targeting

A versioned filter language over typed attributes, with live counts. Describe an audience in English and let AI build the filter.

📬

Beyond the push

A persistent in-app inbox, live in-app messages (banners/modals over WebSocket), email through your own SMTP server and SMS through your own gateway all ride the same send. One API call, five surfaces — and the last two reach people who never installed anything.

📈

Attribution built in

Branch-style links: click → install → purchase revenue per campaign, first-touch honest, exact vs inferred labeled. No second SDK.

Also in the box: scheduled sends — including the same local hour in every time zone — six team roles, and AI that writes the copy and builds the audience filter from a sentence. See the docs →

SDKs

One API, six SDKs, zero bloat

Every SDK is dependency-free or close to it. No version conflicts with your app, ever. Mobile cores are end-to-end tested against the real API in CI before every release.

import { Notibase } from "@notibase/web";
 
const nb = new Notibase({ clientKey: "ck_live_…" });
await nb.init();      // worker, permission prompt, device registered
 
await nb.identify("user-42", { signature });  // verified identity
await nb.trackPurchase(9.99);                // revenue, per campaign
Node.jsserver-side sendsnpm i @notibase/node
Webpush · inbox · livenpm i @notibase/web
AndroidKotlin · zero depscom.github.notibaseorg:notibase-android
iOSSwift · SPM · zero depsgithub.com/notibaseorg/notibase-ios
Flutterpure Dartflutter pub add notibase_flutter
React NativeTypeScript · no native modulenpm i @notibase/react-native

How it works

First notification in ten minutes

Create an app & keys

Sign in with GitHub or Google, generate web-push crypto with one click, mint a client key for your frontend and a server key for your backend.

Drop in an SDK

Two lines in the browser or app registers the device. Your APNs/FCM credentials upload once, validated live, sealed at rest.

Send & measure

Target with typed filters, ride the same send into the inbox and live banners, then watch delivery, growth and revenue in Analytics.

Pricing

Priced like infrastructure, not like a tax on growth

One send is one message to one recipient — so a campaign to 10,000 people is 10,000 sends, not one. Campaigns, segments and subscribers are unlimited on every plan; the quota counts what actually goes out. Paid plans do not stop when you reach it — they keep sending and bill the difference, up to a ceiling each card states, so a leaked key or a retry loop cannot run up a bill nobody set.

Free

$0 forever
  • 10,000 sends / month
    one campaign to 10,000 people, or a daily send to 330
  • Unlimited subscribers
  • 2 apps · 3 team seats
  • Web, iOS & Android push
  • Email & SMS through your own provider
  • Inbox + live messages
  • 10 attribution links
  • 25 AI calls/day (pooled) · BYO key unlimited
Start free

Pro

$29 / month
  • 50,000 sends / month
    a daily campaign to 1,600, or a weekly one to 12,000
  • Unlimited subscribers
  • 10 apps · 15 team seats
  • Everything in Free
  • Send in each recipient’s local time
  • 50 attribution links
  • 500 AI calls/day (pooled) · BYO unlimited
  • Higher rate limits
  • Keeps sending past the limit, then $0.20 per 1,000
    up to 250,000 sends, then sends are refused
Upgrade in-app

Scale

$99 / month
  • 1,000,000 sends / month
    a daily campaign to 33,000, or a weekly one to 250,000
  • Unlimited subscribers
  • 100 apps · 100 team seats
  • Everything in Pro
  • 500 attribution links
  • 5,000 AI calls/day (pooled) · BYO unlimited
  • Priority support
  • Keeps sending past the limit, then $0.10 per 1,000
    up to 5,000,000 sends, then sends are refused
Upgrade in-app

Business

$299 / month
  • 5,000,000 sends / month
    a daily campaign to 160,000, or a weekly one to 1,200,000
  • Unlimited subscribers
  • 250 apps · 250 team seats
  • Everything in Scale
  • 2,000 attribution links
  • 20,000 AI calls/day (pooled) · BYO unlimited
  • Priority support
  • Keeps sending past the limit, then $0.05 per 1,000
    up to 25,000,000 sends, then sends are refused
Upgrade in-app

What counts as a send

  • One message, one recipient. Per device for push — somebody with a phone and a laptop is two. Per person for email and SMS, because those reach an inbox or a number rather than an installation.
  • Two channels is two sends. One campaign carrying both a push and an email costs one of each, to each recipient it reaches that way.
  • A three-part text is still one send. Your SMS gateway bills you per segment; we do not.
  • Skipped does not count. Anyone suppressed, opted out, or not on a channel the campaign covered is never charged for.
  • Attempted does count, even when it bounces. We tried, and the delivery log says exactly what came back.

Subscribers are unlimited on every plan, so growing an audience never costs more on its own — only messaging it more often does. Need more, or custom terms? [email protected]

Security

Boring on purpose

Publishable-key modelClient keys ship in your app and are powerless by design; server keys never leave your backend. Scopes enforced structurally, not by convention.
Identity verificationHMAC-signed identify(). An extracted client key cannot read or impersonate anyone once your identify secret is set.
Credentials sealedYour APNs keys and service accounts are envelope-encrypted with per-secret data keys and a rotatable keyring. Rotation is one command, zero downtime.
Isolation, testedPostgres row-level security backstops every query; a cross-tenant probe suite attacks the boundaries in CI on every commit.

Full details in the security docs · responsible disclosure: [email protected]

Writing

From the blog

How push actually works, what breaks, and how to debug it, written by the people building the platform.

All articles →

Ship notifications your users actually get

Free forever tier · first push on your own screen in ~10 minutes · no card.

Occasional, substantive updates only. We are a notification company; we know better.