Banner + modal + slideout + tooltip surfaces with audience targeting + impression tracking. Server-side content, no app-store re-submit.
Pendo + Appcues + Braze in-app run $1.5K-3K/mo at 10K MAU and require Segment to populate the audiences. Sendora ships 4 in-app surface types (banner / modal / slideout / tooltip) with Customers-audience targeting + Analytics impression tracking — same tenant. Server-side content + appearance + light/dark theme + URL/event triggers. Honest about what's NOT shipped: A/B variants, frequency caps, holdout splits, and Deep Links auto-wrap on the CTA aren't built today.
Features
- 4 message types —
banner/modal/slideout/tooltip. Content fields: title (optional), body, ctaText, ctaUrl, imageUrl, dismissible. - Trigger config — fire by event type, audience membership, URL match, or fixed delay (0-300s). Mix as needed.
- Audience targeting — pick a Customers audience; real-time membership.
- Appearance — position (top / bottom / center), theme (light / dark / auto), optional background + text colour overrides.
- Schedule window —
startsAt+endsAtfor time-boxed campaigns. Inactive flag for soft-pause. - Priority — 0-100; higher wins when multiple messages match the same render slot.
- Impression tracking — every render writes to
in_app_message_impressions. Stats endpoint returns total / active / impressions. - SDK helpers — Web
sendora.messages.*; RN 0.18.6+ shipsmessages.fetchActive()+recordImpression(). Mobile + web parity. - Ship without app-store re-submit — content + targeting + appearance all server-side.
Common use cases
Audience-targeted modals ("active 14d + free plan → upgrade prompt") without writing custom rendering logic.
Empty-state nudges + onboarding tooltips driven by Analytics-built audiences.
Time-boxed announcements (launch banner, scheduled maintenance notice) via `startsAt` / `endsAt`.
Start in minutes. Scale without switching tools.
The free tier covers most side projects. Every module is turn-key and every SDK is first-party.