A Ruby gem for sending encrypted push notifications to web browsers using the Web Push Protocol.
WebPush is a Ruby gem that provides encryption utilities for sending push notifications to web browsers via the Web Push Protocol. It handles secure message delivery with payload encryption, supporting modern browsers like Chrome, Firefox, and Edge. The gem simplifies implementing web push features in Ruby backends by managing protocol details and encryption automatically.
Ruby developers building web applications that need to send browser-based push notifications, such as SaaS platforms, content sites, or real-time notification systems.
Developers choose WebPush for its clean Ruby API, built-in support for VAPID and payload encryption, and seamless integration with service workers. It eliminates the need to manually implement the Web Push Protocol, reducing complexity and ensuring security compliance.
webpush, Encryption Utilities for Web Push protocol
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically generates and uses VAPID keys for secure messaging, with clear examples in the README for key generation and payload encryption.
Supports encrypted payloads for Chrome 50+, Firefox 48+, and Edge 79+, ensuring compatibility with major modern browsers as specified.
Allows setting custom SSL, open, and read timeouts for push requests, providing fine-grained control over delivery reliability, as shown in the API section.
Works with VAPID for standard compliance or GCM API keys for Chrome, offering multiple integration paths without locking into one approach.
Requires significant frontend work including service worker setup, manifest.json, and JavaScript subscription code, which is not abstracted by the gem, adding development overhead.
Cannot send notifications to native mobile apps, restricting its use to browser-based applications only, as highlighted in the browser support details.
Lacks built-in tools for handling subscription lifecycle, analytics, or error tracking, requiring additional development effort for production-ready systems.