Email · Push · In-App — one platform

The engagement platform you actually own

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

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. 1

    Create a project

    Spin up an isolated, multi-tenant workspace and grab a public + secret API key pair.

  2. 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. 3

    Drop in the SDK

    Identify users and track events with ~20 lines. Web, React Native (+ Expo), Node — one core, many targets.

  4. 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
App.tsx
import { Engage } from "@engage/react-native";

const engage = Engage.init({
  publicKey: "pk_live_…",
  userProvider: () => auth.currentUser?.uid,
});

// Identify + track
await engage.identify(uid, { trial_days_left: 3, locale: "de" });
engage.track("opened_paywall");

// Render in-app messages + handle deep links, your way
engage.onInApp((msg) => showModal(msg));
engage.onNavigate((route) => router.push(route));

Built right

Security and portability, not an afterthought

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.