Getting Started (Client SDK)
The SaaS backend is not public yet. These steps cover the client side and what to prepare for onboarding.
Prerequisites
- Expo project with native builds (EAS or Dev Client). Expo Go is not supported once native code is involved.
- Install
expo-notifications(peer requirement). - Build with Play/App Signing (Android) and real device/TestFlight (iOS) for attestation.
Install
npm install pushwave-client
npx expo install expo-notifications
Add the config plugin to your app.json / app.config.*:
{
"expo": {
"plugins": ["pushwave-client"]
}
}
Build native (EAS or Dev Client):
eas build -p android --profile development
eas build -p ios --profile development
Minimal usage
import { useEffect } from "react";
import { Alert } from "react-native";
import PushWaveClient from "pushwave-client";
export default function App() {
useEffect(() => {
(async () => {
const res = await PushWaveClient.init({ apiKey: "pw_dev_xxx" });
if (!res.success) {
Alert.alert("PushWave", res.message ?? "Init failed");
}
})();
}, []);
return null; // your UI
}
- Call
PushWaveClient.initonce at startup. It returns{ success: boolean; message?: string }. - In
__DEV__, the SDK may log extra debug info (failed API calls, attestation status).
Attestation preparation
- Android: provide
packageName, SHA-256 signing certs (all), and ensure the SDK uses the PushWave cloud project number when calling Play Integrity. - iOS: provide
teamId,keyId,bundleId, and.p8(stored encrypted server-side). - Until the SaaS opens, attestation is non-blocking; consider it best-effort.
Keys and secrets
- Public project key: used in the client (
apiKey). - Project secret: sent in headers to the PushWave backend (once the API is available).
- Google API keys are not needed for attestation decode; PushWave uses its own service account.
Limitations (alpha)
- No public dashboard/API yet.
- Expo Go not supported; use EAS/Dev Client.
- FCM credentials must still be uploaded to Expo for Android push (platform requirement).