# nickersoft/push.js

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nickersoft-push-js).**

8,665 stars · 524 forks · JavaScript · MIT · archived

## Links

- GitHub: https://github.com/Nickersoft/push.js
- Homepage: https://pushjs.org
- awesome-repositories: https://awesome-repositories.com/repository/nickersoft-push-js.md

## Topics

`javascript` `javascript-library` `notification-api` `notifications` `push` `push-notifications`

## Description

Push.js is a cross-browser JavaScript library for displaying native desktop notifications from web applications. It wraps the divergent browser notification APIs into a single consistent interface, handling permission requests through a promise-based flow and providing graceful fallback when the native Notification API is unavailable.

The library distinguishes itself through its event-driven lifecycle hooks, which expose callbacks for notification events such as show, click, close, and error. It also supports programmatic dismissal by returning a notification handle with a close method, and includes a timeout-based queue that stores notifications during user absence and replays them upon return. Scheduled delivery is handled through an internal timer that delays notification display to a specified future timestamp.

The project covers the full lifecycle of desktop notification management, including display, permission requests, queuing during absence, programmatic closure, and scheduled delivery. It accepts a single configuration object with properties for title, body, icon, timeout, and scheduling, and degrades to in-page or console notifications when the native API is not supported.

## Tags

### Business & Productivity Software

- [Cross-Browser Notification Libraries](https://awesome-repositories.com/f/business-productivity-software/browser-notifications/cross-browser-notification-libraries.md) — Provides a cross-browser wrapper for displaying native desktop notifications with permission handling and scheduling support.
- [Cross-Browser Notification Wrappers](https://awesome-repositories.com/f/business-productivity-software/browser-notifications/cross-browser-notification-wrappers.md) — Wraps browser notification APIs with fallback support for consistent desktop notification behavior across different browsers.

### Development Tools & Productivity

- [Desktop](https://awesome-repositories.com/f/development-tools-productivity/notification-managers/desktop.md) — Displays and manages native desktop notifications from web applications across different browsers with permission handling and programmatic control.

### DevOps & Infrastructure

- [Cross-Browser Desktop Notification Displays](https://awesome-repositories.com/f/devops-infrastructure/push-notification-services/desktop-notification-bridges/cross-browser-desktop-notification-displays.md) — Shows native desktop notifications across different browsers with fallback for unsupported APIs. ([source](https://cdn.jsdelivr.net/gh/nickersoft/push.js@master/README.md))
- [Web-Based Desktop Notification Dispatchers](https://awesome-repositories.com/f/devops-infrastructure/push-notification-services/desktop-notification-bridges/web-based-desktop-notification-dispatchers.md) — Displays native operating-system notifications from a web page using a cross-browser wrapper. ([source](https://pushjs.org/true))

### Security & Cryptography

- [Desktop Notification Permission Requests](https://awesome-repositories.com/f/security-cryptography/notification-permission-management/desktop-notification-permission-requests.md) — Manages the promise-based permission request flow for displaying native desktop notifications from web applications. ([source](http://pushjs.org/))

### Web Development

- [Desktop Notification API Wrappers](https://awesome-repositories.com/f/web-development/api-bridges/browser-api-wrappers/desktop-notification-api-wrappers.md) — Unifies browser notification APIs with fallback support for unsupported environments.
- [Browser API Normalizers](https://awesome-repositories.com/f/web-development/browser-api-normalizers.md) — Normalizes divergent browser notification APIs into a single consistent interface.
- [Fallback Notification Strategies](https://awesome-repositories.com/f/web-development/notification-apis/fallback-notification-strategies.md) — Degrades gracefully to in-page or console notifications when the native Notification API is unavailable.

### Software Engineering & Architecture

- [Lifecycle Event Hooks](https://awesome-repositories.com/f/software-engineering-architecture/lifecycle-event-hooks.md) — Exposes callbacks for notification lifecycle events such as show, click, close, and error.

### System Administration & Monitoring

- [Scheduled Notification Triggers](https://awesome-repositories.com/f/system-administration-monitoring/alert-notification-systems/scheduled-notification-triggers.md) — Delays the display of desktop notifications to specific future times for timed alerts and reminders.
- [Desktop Notification Schedulers](https://awesome-repositories.com/f/system-administration-monitoring/alert-notification-systems/scheduled-notification-triggers/desktop-notification-schedulers.md) — Schedules and displays delayed desktop notifications from web applications.
- [Timer-Based Notification Schedulers](https://awesome-repositories.com/f/system-administration-monitoring/alert-notification-systems/scheduled-notification-triggers/timer-based-notification-schedulers.md) — Uses setTimeout internally to delay notification display to a specified future timestamp.

### User Interface & Experience

- [Notification Queues](https://awesome-repositories.com/f/user-interface-experience/notification-queues.md) — Stores notifications in a queue during user absence and replays them after a configurable timeout.
- [Absence](https://awesome-repositories.com/f/user-interface-experience/notification-queues/absence.md) — Queues notifications during user absence and replays them upon return for non-disruptive delivery. ([source](http://pushjs.org/))
- [Programmatic Notification Closers](https://awesome-repositories.com/f/user-interface-experience/notifications/programmatic-notification-closers.md) — Returns a notification handle with a close method for programmatic dismissal of desktop notifications. ([source](http://pushjs.org/))
- [Programmatic Close Handles](https://awesome-repositories.com/f/user-interface-experience/ui-components/feedback-overlay-components/close-buttons/programmatic-close-handles.md) — Returns a notification handle that allows the caller to dismiss the notification later via a close method.
