https://github.com/draphy/pushforge
A modern, cross-platform Web Push Notification library with full VAPID support. Handles payload encryption, authentication, and delivery across Node.js, Browsers, Deno, Bun, and Cloudflare Workers. Zero dependencies, TypeScript-first, and built for modern web applications.
https://github.com/draphy/pushforge
browser bun cloudflare cross-platform deno ecdh hkdf nodejs typescript vapid web webpush webpush-notifications
Last synced: 10 months ago
JSON representation
A modern, cross-platform Web Push Notification library with full VAPID support. Handles payload encryption, authentication, and delivery across Node.js, Browsers, Deno, Bun, and Cloudflare Workers. Zero dependencies, TypeScript-first, and built for modern web applications.
- Host: GitHub
- URL: https://github.com/draphy/pushforge
- Owner: draphy
- License: mit
- Created: 2025-04-17T10:58:02.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-04-29T00:05:13.000Z (10 months ago)
- Last Synced: 2025-04-29T01:25:16.200Z (10 months ago)
- Topics: browser, bun, cloudflare, cross-platform, deno, ecdh, hkdf, nodejs, typescript, vapid, web, webpush, webpush-notifications
- Language: TypeScript
- Homepage: https://www.npmjs.com/org/pushforge
- Size: 1.07 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PushForge ๐

**Modern, Cross-Platform Web Push Notifications**
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](CONTRIBUTING.md)
## What is PushForge?
PushForge is a comprehensive toolkit for implementing Web Push Notifications in modern web applications. It handles the complex parts of push notifications so you can focus on building great user experiences.
**Zero dependencies. Cross-platform. TypeScript-first.**
### Features
- ๐ Compliant VAPID authentication
- ๐ฆ Streamlined payload encryption
- ๐ Works everywhere: Node.js, Browsers, Deno, Bun, Cloudflare Workers
- ๐งฉ Modular architecture for flexible implementation
- ๐ ๏ธ Built with TypeScript for robust type safety
## Packages
| Package | Description | Path |
| -------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------- |
| [@pushforge/builder](packages/builder) | Core library for building push notification requests with proper VAPID encryption | [`packages/builder/`](packages/builder) |
_More packages coming soon!_
## Quick Start
```bash
# Install the core package
npm install @pushforge/builder
# Generate VAPID keys for push authentication
npx @pushforge/builder generate-vapid-keys
```
Check out the complete documentation in each package's README for detailed usage examples.
## Project Structure
```
pushforge/
โโโ packages/
โ โโโ builder/ # Core push notification builder
โ โโโ lib/ # Source code
โ โโโ examples/ # Usage examples (coming soon...)
โ โโโ README.md # Package documentation
โโโ README.md # This file
```
## Requirements
- **Node.js**: v16.0.0 or higher (for WebCrypto API support)
- **NPM**, **Yarn**, or **pnpm** for package management
## Development Setup
1. Clone the repository:
```bash
git clone https://github.com/draphy/pushforge.git
cd pushforge
```
2. Install dependencies:
```bash
pnpm install
```
3. Build packages:
```bash
pnpm build
```
4. Available Commands:
```bash
# Format and lint code
pnpm biome:format # Format code with Biome
pnpm biome:lint # Lint code with Biome
pnpm biome:check # Check code with Biome
pnpm biome:fix # Fix issues automatically with Biome
# Type checking
pnpm type:check # Run TypeScript type checking
# Commit checks (run before committing)
pnpm commit:check # Run formatting, type checking and build
```
## Contributing
Contributions are always welcome! We follow a structured workflow for contributions - see our [Contributing Guidelines](CONTRIBUTING.md) for details.
Whether you want to:
- ๐ Report a bug
- ๐ก Suggest new features
- ๐งช Improve tests
- ๐ Enhance documentation
- ๐ป Submit a PR
We appreciate your help making PushForge better for everyone.
## Reporting Issues
Found a bug or have a feature request? Please [open an issue](https://github.com/draphy/pushforge/issues/new) and provide as much detail as possible.
## Sponsorship
If you find PushForge valuable, consider [sponsoring the project](https://github.com/sponsors/draphy). Your sponsorship helps maintain and improve the library.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---