v0 preview

AgeSignal SDK

Add age-aware behavior to your Expo or React Native app in under five minutes.

Install

Add the SDK to your Expo project.

terminal
npx expo install @agesignal/expo

Wrap your app in the provider

The provider initializes the SDK and exposes the signal via hooks.

App.tsx
// App.tsx
import { AgeSignalProvider } from "@agesignal/expo"

export default function App() {
  return (
    <AgeSignalProvider apiKey={process.env.EXPO_PUBLIC_AGESIGNAL_KEY}>
      <RootNavigator />
    </AgeSignalProvider>
  )
}

Request an age signal

Use useAgeSignal() in any component. The signal can come from onboarding, the OS, or an app-store API.

Onboarding.tsx
import { useAgeSignal } from "@agesignal/expo"

function Onboarding() {
  const { signal, request, loading } = useAgeSignal()

  if (!signal) {
    return <Button onPress={request}>Continue</Button>
  }

  return signal.isMinor ? <MinorHome /> : <AdultHome />
}

Adapt app behavior

Branch on the signal and apply minor-safe defaults — the whole point of the SDK.

behavior.ts
if (signal.isMinor) {
  setAdsMode("contextual")
  setDiscoveryMode("safe")
  hideFeature("dm")
  enablePrivateDefaults()
}

Audit log

Log age-related decisions locally so you can show your work later.

audit.ts
await AgeSignal.log({
  decision: "disabled_personalized_ads",
  reason: "signal.isMinor === true",
})

Platforms

  • Expo SDK 50+ (managed and dev client)
  • Bare React Native 0.73+
  • iOS 16+ — wires into emerging Apple age-signal APIs
  • Android 13+ — wires into Google age-signal APIs
Ready to try AgeSignal?

Join the waitlist for early access.