Skip to main content

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.init once 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).