1 Enable Push Notifications
Click to enable push notifications
2 Send Test Notification
0
Sent
0
Active Devices
How This Test Works
- Enable toggle to add your device to the notification queue for 5 minutes
- Anyone can send — clicking "Send" notifies all active devices, even if you haven't enabled the toggle yourself
- If no devices are active, no notifications are sent
- Your subscription is automatically deleted after 5 minutes
- Disable the toggle to remove your device immediately
- Click Refresh to update the device count and your toggle status
About PushForge
A lightweight, dependency-free Web Push library built on the standard Web Crypto API. Send push notifications from any JavaScript runtime.
- Zero dependencies — no bloat, no supply chain risk
- Web Crypto API — uses the standard Web Crypto API, no Node.js-specific modules
- Works everywhere — Cloudflare Workers, Vercel Edge, Convex, Deno, Bun, Node.js 20+, and modern browsers
- TypeScript-first — native types, no @types package needed
Why PushForge?
Traditional libraries like web-push rely on Node.js-specific APIs that fail on modern edge runtimes:
❌ Cloudflare Workers — "crypto.createECDH is not a function"
❌ Vercel Edge — "https.request is not available"
❌ Convex — "Top-level await is not supported"
| PushForge | web-push | |
|---|---|---|
| Dependencies | 0 | 5+ |
| Cloudflare Workers | Yes | No |
| Vercel Edge | Yes | No |
| Convex | Yes | No |
| Deno / Bun | Yes | Limited |
| TypeScript | Native | @types |
Quick Start
# Install
npm install @pushforge/builder
# Generate VAPID keys
npx @pushforge/builder vapid
npm install @pushforge/builder
# Generate VAPID keys
npx @pushforge/builder vapid
- Subscribe users on the frontend with the VAPID public key
- Send notifications from your server with
buildPushHTTPRequest() - Full docs — github.com/draphy/pushforge
Browser Support
- Chrome, Edge, Opera — works out of the box
- Firefox — works out of the box
- Safari 16+ — macOS Ventura and later
- Brave — enable "Use Google services for push messaging" in brave://settings/privacy