Skip to content

v0.1.0

Choose a tag to compare

@nkemtasoft nkemtasoft released this 24 Feb 16:15
· 1 commit to master since this release

v0.1.0 — Initial Release

Local Web Push notification testing service — like Mailpit, but for VAPID web push.

What is local-push?

A drop-in local replacement for browser push services (FCM, Mozilla, etc.) that lets you send, receive, and inspect web push notifications without a browser or third-party service. Zero changes to your backend code.

Features

  • Push endpoint — receives encrypted payloads from the web-push npm library and decrypts them automatically (AES-128-GCM / aesgcm)
  • Dashboard — built-in web UI with real-time updates (SSE), JSON syntax highlighting, dark/light mode
  • REST API — full CRUD for subscriptions and messages, SSE event stream, health check
  • Client SDK — @nkemtasoft/local-push/client with waitForMessage() for integration tests
  • Docker ready — single image, single port, no external dependencies
  • Self-signed TLS — generated on startup (web-push requires HTTPS)

Quick Start

# Docker
docker run -p 4078:4078 ghcr.io/nkemtasoft/local-push

# npx
npx @nkemtasoft/local-push

# SDK
yarn add -D @nkemtasoft/local-push

Example

import { LocalWebPushClient } from "@nkemtasoft/local-push/client";

const client = new LocalWebPushClient({ url: "https://localhost:4078" });
const { subscription } = await client.createSubscription();

// Use subscription in your DB, send a push from your backend, then:
const msg = await client.waitForMessage({ timeout: 5000 });
console.log(msg.payload);

See the README for full documentation.