Send Email, Push and In-App messages, deep-link users to any screen, and automate conditional sends — from one multi-tenant dashboard. Bring your own FCM and SMTP.
A developer-first alternative to MoEngage, OneSignal & Braze.
Five channels, one platform
Everything you need to reach a user
Email, push, in-app, deep links and automation — behind clean adapter interfaces so you're never locked in.
🔔
Push notifications
Your own FCM credentials
Reach Android and iOS devices through your own Firebase project — FCM relays to APNs for iOS. Engage batches sends, prunes dead tokens automatically, and never owns your deliverability.
Bring-your-own FCM service account
sendEach batching up to 500/call
Automatic dead-token pruning
✉️
Transactional & campaign email
Any SMTP, provider-agnostic
Send through any SMTP provider with nodemailer. Rich HTML with plain-text fallback, throttled to your provider's rate. SPF/DKIM guidance built in.
Works with SendGrid, SES, Postmark, or your own SMTP
HTML + text multipart
Rate-limit aware throttling
💬
In-app messages
Five layouts, rendered for you
Modal, banner, full-screen, bottom-sheet and custom HTML — all rendered by the SDK, styled from the dashboard. Or take the payload yourself and draw it however you like.
Modal, banner, full-screen, bottom-sheet & HTML
Self-handled rendering when you want it
Frequency caps, quiet hours & queueing
🧭
Deep-link navigation
Route users to any screen
Every message can carry a route — a screen name plus key/value params. Your app maps it to its own navigator, so a tap lands users exactly where you want them.
Structured { screen, kv } routes
onNavigate() maps to your router
Works across push, email & in-app
⚙️
Conditional & automated sends
Segments, schedules & triggers
Target saved segments or inline filters, then fire on a schedule, on an event (with delay + cooldown), or manually. Caps and quiet hours are enforced for every recipient.
Filter operators: eq, gt, lt, contains, in, exists…
Event triggers with delay & cooldown
Daily / weekly / one-off schedules
From zero to first send
Live in an afternoon
No infrastructure to stand up, no delivery costs to Engage. Connect your own providers and go.
1
Create a project
Spin up an isolated, multi-tenant workspace and grab a public + secret API key pair.
2
Connect your credentials
Paste your FCM service account and SMTP details. Engage verifies with a test send and stores only an encrypted reference — never the raw secret.
3
Drop in the SDK
Identify users and track events with ~20 lines. Web, React Native (+ Expo), Node — one core, many targets.
4
Build & send campaigns
Compose push, email and in-app content, pick an audience, set a trigger, and ship — from the dashboard or the API.
~20 lines to integrate
One SDK. Your UI stays yours.
A TypeScript core with thin wrappers for Web, React Native and Node. You keep full control of rendering and navigation — Engage just hands you the message and the route.
Public key is write-only — safe to ship in apps
onInApp / onNavigate mirror your existing renderer & router
Server SDK uses the secret key for campaigns & send-now
The principles that shape every line — so you can trust it in production and leave whenever you want.
🏗️
Multi-tenant from day one
The Project is the isolation boundary. Every write is scoped by projectId; nothing about one tenant is ever reachable by another.
🔑
Bring your own credentials
Each project connects its own FCM and SMTP. Engage sends on your behalf and never owns delivery cost or deliverability.
🛡️
Secrets encrypted at rest
Credentials never touch the database in plaintext — only a reference, backed by Secret Manager + per-project KMS envelope encryption.
🔓
Portable by design, no lock-in
Store and Channel adapter seams mean Firestore→Postgres and Functions→Run are swaps, not rewrites.
FAQ
Questions, answered
What do I need to get started?
A project, your own FCM service account and SMTP details, and the SDK. You can be sending push, email and in-app messages the same day — the Starter plan is free up to 1,000 monthly tracked users.
How is this different from MoEngage, OneSignal or Braze?
Engage is developer-first and it uses your own FCM and SMTP credentials — so Engage never owns your delivery cost or deliverability, and nothing about one tenant is reachable by another.
Which platforms do the SDKs support?
A TypeScript core powers thin wrappers for Web and React Native (with an Expo config plugin), plus a Node server SDK. iOS, Android and Flutter wrappers are on the roadmap.
How are my push and email credentials stored?
They never touch the database in plain text. Each connection stores only a reference; the secret lives in Secret Manager, encrypted with a per-project KMS key using envelope encryption.
Can I migrate from an existing provider?
Yes. Engage mirrors the common in-app renderer + deep-link + route-resolver contract, so you can dual-run behind a feature flag and cut over once you're confident.
Own your engagement stack today
Start free on the hosted dashboard. Your data, your credentials, your rules.