productdevbook / nitroping
Zero-dependency PHP SDK for nitroping push notifications. Send pushes, register devices, verify webhooks.
Package info
github.com/productdevbook/nitroping-sdk
Language:Kotlin
pkg:composer/productdevbook/nitroping
Requires
- php: >=8.2
- ext-curl: *
- ext-hash: *
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.50
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-05-27 06:44:18 UTC
README
Official client libraries for nitroping.dev — push notifications for iOS, Android, and the web.
| Language | Status | Folder | Package | Docs |
|---|---|---|---|---|
| TypeScript / JavaScript | Released | js/ |
nitroping on npm |
README |
| Swift | Released | swift/ |
Swift Package Manager | README |
| Python | In progress | python/ |
nitroping on PyPI |
README |
| Go | In progress | go/ |
github.com/productdevbook/nitroping-sdk/go |
README |
| Kotlin | In progress | kotlin/ |
Maven Central | README |
| PHP | In progress | php/ |
Packagist | README |
Wire-format reference
All SDKs share the same HTTP API + signature format. The canonical reference lives in the server repo:
- API: https://nitroping.dev/docs
- Webhook signature:
X-Nitroping-Signature: t=<unix>, v1=<hmac_sha256_hex>over<unix>.<raw_body> - Idempotency:
Idempotency-Keyheader onPOST /api/v1/notifications
Why monorepo
Every SDK speaks the same wire format. Keeping them in one repo lets us update the protocol surface in one PR + one commit instead of N coordinated PRs across N repos. Each SDK still ships independently to its own package registry (npm, PyPI, Swift Package Index, Maven Central, etc.) with per-language tags (js/v0.1.0, swift/v0.1.0, go/v0.1.0, …).
Release process
All SDKs ship in lockstep — same version across js, swift, python, go, kotlin, php.
./bump.sh 0.2.0 git push origin main --follow-tags
The push fires .github/workflows/release.yml:
| Job | Status | Trigger when to enable |
|---|---|---|
| npm | active | NPM_TOKEN already configured |
| PyPI | disabled (if: false) |
add PYPI_TOKEN secret |
| Maven | disabled (if: false) |
add 5 Sonatype OSSRH secrets |
| Packagist | n/a (webhook auto-index) | one-time submit at packagist.org |
| Go | n/a (pkg.go.dev fetches on demand) |
one-time go get to warm cache |
| Swift | n/a (Swift Package Index re-indexes nightly) | one-time submit at swiftpackageindex.com |
The bump.sh script also tags go/v<X.Y.Z> (Go modules subdir convention) so go get github.com/productdevbook/nitroping-sdk/go@v<X.Y.Z> resolves.
Packagist (PHP)
Submit https://github.com/productdevbook/nitroping-sdk directly at https://packagist.org/packages/submit. Packagist reads the root composer.json; .gitattributes strips the other-language directories from the dist archive, so PHP users only download the PHP package.
Versioning policy
Lockstep — one source-of-truth VERSION file at the repo root drives every SDK manifest. Even when only one SDK has functional changes, all SDKs get the same bump. Trade-off accepted: keeps the cross-language story simple ("are you on 0.2? then features X, Y, Z are available everywhere") at the cost of occasional no-op republishes.
License
MIT — see LICENSE.