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.
- 🔐 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
Package | Description | Path |
---|---|---|
@pushforge/builder | Core library for building push notification requests with proper VAPID encryption | packages/builder/ |
More packages coming soon!
# 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.
pushforge/
├── packages/
│ └── builder/ # Core push notification builder
│ ├── lib/ # Source code
│ ├── examples/ # Usage examples (coming soon...)
│ └── README.md # Package documentation
└── README.md # This file
- Node.js: v16.0.0 or higher (for WebCrypto API support)
- NPM, Yarn, or pnpm for package management
-
Clone the repository:
git clone https://github.com/draphy/pushforge.git cd pushforge
-
Install dependencies:
pnpm install
-
Build packages:
pnpm build
-
Available Commands:
# 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
Contributions are always welcome! We follow a structured workflow for contributions - see our Contributing Guidelines 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.
Found a bug or have a feature request? Please open an issue and provide as much detail as possible.
If you find PushForge valuable, consider sponsoring the project. Your sponsorship helps maintain and improve the library.
This project is licensed under the MIT License - see the LICENSE file for details.