productdevbook/nitroping

Zero-dependency PHP SDK for nitroping push notifications. Send pushes, register devices, verify webhooks.

Maintainers

Package info

github.com/productdevbook/nitroping-sdk

Homepage

Language:Kotlin

pkg:composer/productdevbook/nitroping

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v0.2.2 2026-05-23 18:35 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-Key header on POST /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.