You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**[Try the Live Demo →](https://pushforge.draphy.org)**
18
+
**[Try the Playground →](https://pushforge.draphy.org)**
19
19
20
20
</div>
21
21
22
22
---
23
23
24
-
## Live Demo
24
+
## Playground
25
25
26
-
See PushForge in action at **[pushforge.draphy.org](https://pushforge.draphy.org)** — a fully working test site powered by PushForge on Cloudflare Workers.
26
+
Test PushForge at **[pushforge.draphy.org](https://pushforge.draphy.org)** — an interactive playground for testing push notifications, powered by Cloudflare Workers.
27
27
28
-
-**Enable push notifications** on your device with a single toggle
29
-
-**Send a test notification** to all active devices — anyone visiting the page can send and receive
30
-
-**See it working across browsers** — Chrome, Firefox, Edge, Safari 16+, and more
31
-
- Subscriptions auto-expire after 5 minutes — no permanent data stored
28
+
-**Quick Test** — enable notifications, send test messages, see them arrive instantly
29
+
-**Topic Channels** — test targeted notifications by subscribing to channels
-**Push Options** — test urgency (battery hints) and TTL (message expiry)
32
+
-**Cross-Browser Testing** — works on Chrome, Firefox, Edge, Safari 16+
32
33
33
-
The entire backend is a single Cloudflare Worker using `buildPushHTTPRequest()`from `@pushforge/builder`with zero additional dependencies.
34
+
Subscriptions auto-expire (5 min for quick test, 1 hour for topics) — no permanent data stored. The backend is a single Cloudflare Worker using `buildPushHTTPRequest()` with zero dependencies.
**[Try the Live Demo →](https://pushforge.draphy.org)**
18
+
**[Try the Playground →](https://pushforge.draphy.org)**
19
19
20
20
</div>
21
21
@@ -25,14 +25,17 @@ Send push notifications from any JavaScript runtime · Zero dependencies
25
25
npm install @pushforge/builder
26
26
```
27
27
28
-
## Live Demo
28
+
## Playground
29
29
30
-
Try PushForge in your browser at **[pushforge.draphy.org](https://pushforge.draphy.org)** — a live test site running on Cloudflare Workers.
30
+
Test PushForge in your browser at **[pushforge.draphy.org](https://pushforge.draphy.org)** — an interactive playground for testing push notifications, powered by Cloudflare Workers.
31
31
32
-
- Toggle push notifications on, send a test message, and see it arrive in real time
33
-
- Works across all supported browsers — Chrome, Firefox, Edge, Safari 16+
34
-
- The backend is a single Cloudflare Worker using `buildPushHTTPRequest()` with zero additional dependencies
35
-
- Subscriptions auto-expire after 5 minutes — no permanent data stored
32
+
-**Quick Test** — enable notifications, send a test message, see it arrive in real time
33
+
-**Topic Channels** — test targeted notifications by subscribing to specific channels
The `payload` field accepts any JSON-serializable data — PushForge encrypts and delivers it as-is. Your service worker receives this payload and passes it to the browser's `showNotification()` API.
351
+
352
+
> **Note:** These are standard [Web Notifications API](https://developer.mozilla.org/en-US/docs/Web/API/Notification) options, not PushForge-specific. PushForge handles the transport; your service worker handles the display.
353
+
354
+
Common fields:
355
+
356
+
| Field | Type | Description |
357
+
|-------|------|-------------|
358
+
|`title`| string | Notification title (required) |
359
+
|`body`| string | Notification body text |
360
+
|`icon`| string | URL for the notification icon |
361
+
|`badge`| string | URL for the badge (small monochrome icon) |
362
+
|`image`| string | URL for a large image |
363
+
|`dir`| string | Text direction: `"auto"`, `"ltr"`, or `"rtl"`|
364
+
|`lang`| string | Language tag (e.g., `"en-US"`, `"es"`) |
365
+
|`tag`| string | Tag for notification replacement (same tag = replace, not stack) |
366
+
|`renotify`| boolean | Vibrate/alert again when replacing a notification with same tag |
367
+
|`requireInteraction`| boolean | Keep notification visible until user interacts |
368
+
|`silent`| boolean | Suppress sound and vibration |
369
+
|`timestamp`| number | Timestamp in milliseconds (e.g., `Date.now()`) |
"description": "A robust, cross-platform Web Push notification library that handles VAPID authentication and payload encryption following the Web Push Protocol standard. Works in Node.js 16+, Browsers, Deno, Bun and Cloudflare Workers.",
4
+
"description": "Zero-dependency Web Push library for Cloudflare Workers, Vercel Edge, Convex, Deno, Bun, and Node.js 20+. A web-push alternative that uses Web Crypto API instead of Node.js crypto.",
0 commit comments