Open source · Free during early access

Web Push notifications,
made simple.

A lightweight alternative to OneSignal for Next.js / React projects. Sign up, drop the SDK in, and start sending — in minutes.

No credit card · MIT licensed · Self-host friendly

Built on Next.js 16Postgres + RLS via SupabaseVAPID + Web Push standardsHMAC-signed webhooks

The features you need to send. Nothing else.

No segmentation. No journeys. No A/B tests. Just reliable Web Push.

Send in seconds

Compose in the dashboard or POST to a Bearer-auth endpoint. Synchronous response includes per-subscriber delivery counts.

REST API

One endpoint per project. Use it from any backend, CI, or curl. No SDK required on the server.

External user IDs

Tag subscriptions with your own user IDs and target sends by user from the dashboard or REST.

Signed webhooks

HMAC-SHA256 signatures, exponential-backoff retry, per-event filtering. Delivery log + replay UI included.

Built-in analytics

Shown / clicked beacons fire from the SDK service worker — no extra tools to wire up.

Open source

MIT licensed end-to-end. Read the code, fork it, audit the storage. Self-hosting guide included.

Web Push only. Nothing else.

We skip the marketing-suite features on purpose. In return you get readable code, ownership of your data, and no vendor lock-in.

FeatureNeshOneSignalRoll your own
Time to first notificationMinutesHoursDays
Per-project pricing transparencyFree tier in docsSales callYour AWS bill
Web Push standard (VAPID)YesYesYes
Open sourceMITNoYour repo
Hosted dashboardYesYesDIY
Signed webhooksBuilt-inBuilt-inDIY
Segmentation / Journeys / A/BOut of scopeYesDIY

A dashboard that fits on one screen

No nested menus to learn. Every project's status at a glance.

Nesh dashboard showing a project with subscriber count, monthly sends, and notification history

From signup to first send

Three steps, one code snippet.

1

Create a project

Sign up and create a project. We generate VAPID keys and an API key for you.

2

Drop in the SDK

Install @piro0919/next-push and pass apiBase + publicKey from the SDK setup screen.

3

Send

Compose in the dashboard, schedule it, or POST to the REST endpoint.

'use client';
import { usePush } from "@piro0919/next-push";

export function Subscribe() {
  const { subscribe } = usePush({
    apiBase: "https://nesh.kkweb.io/api/v1/projects/<projectId>",
    vapidPublicKey: "<VAPID public key>",
    userId: currentUser.id, // optional — target sends by user
  });
  return <button onClick={subscribe}>Enable notifications</button>;
}

Free for the entire early access period

Nesh is a self-funded side project — no VC, no "surprise paywall" exit. Long-term pricing will be announced in advance once it's decided.

Free during early access
$0/ month
Free plan
  • 1 project per account
  • 5,000 subscribers per project
  • 10,000 sends per project per UTC month
  • Unlimited webhooks (5s timeout, exponential retry)
  • REST API + signed webhooks included
Pick the free plan

FAQ

Ship Web Push this afternoon

No setup call. No credit card. No five-page onboarding.