
They arrive at the wrong hour
A 2 PM blast lands mid-meeting for one person and at 3 AM for another. Both swipe it away without reading.
Perchpush sends push, in-app messages, an inbox, email and SMS from one place, at the hour each person actually picks up their phone. It runs on your own Firebase and Apple keys, so you stay in control.

Illustration with an example user. Your app’s real best hours come from its own data.
Works with the stack you already ship
Not because they’re spam, but because they show up at the wrong moment, in the wrong words, and nobody can tell if they helped.

A 2 PM blast lands mid-meeting for one person and at 3 AM for another. Both swipe it away without reading.

One language, no name, a link that opens the home screen. It reads like a broadcast, so it gets treated like one.

“Sent: 40,000” says nothing. Did anyone come back who wouldn’t have anyway?

Perchpush fixes all three: the right hour, their own words, and proof of what changed.

Perchpush learns when each device engages and sends within that hour. Local time and quiet hours keep you polite.

Push on Android, iOS and the web, live in-app messages, an inbox, email and SMS, all from one API call.

Waits, goals and exits. Set it up once and every new user walks the path.

Try two versions on a slice, then send the winner to everyone else.

One message, delivered in each phone’s language with personal details filled in.

On-device receipts, conversion goals and hold-out groups. Stop counting sends and start counting people who came back.

Draft copy, translate it, or describe an audience in plain words.

Perchpush sends through your own providers, so there’s no lock-in. Your keys, tokens and sender reputation stay yours.

Six roles from owner to viewer, an audit log of every change, Slack and Discord alerts, and a public status page.

Someone installs your app and never opens it again. Send a gentle nudge the next morning, a tip on day three, and stop the moment they finish their first lesson.

Write a campaign once. Each phone gets it in its own language, with the person’s name and plan, and a link that opens the right screen.

Someone has been away for a week. Perchpush notices, waits for the hour they usually pick up their phone, and compares them with a hold-out group so you see who really came back.

Create an app and upload the Firebase service account and APNs key you already have. Add SMTP or SMS later if you want.

A few lines in Flutter, React Native, iOS, Android or the web. Identify users and track the events you care about.

Send yourself a test, then a campaign or a journey. Watch delivery, opens and conversions roll in live.
PushPal.configure(appKey: 'pk_…');
await PushPal.attachFirebase(FirebaseMessaging.instance,
onMessageOpenedApp: FirebaseMessaging.onMessageOpenedApp);
await PushPal.identify(user.id, signature: sig);
await PushPal.track('lesson_completed');
Sends go through your own Firebase, APNs, SMTP and SMS accounts. If you leave, your tokens and data come with you.

Provider keys are encrypted at rest with a rotatable keyring, and user identity can be HMAC-signed.

Owner through viewer. Every change to a campaign, key or teammate is recorded.

Delivery, open and click events go to your server, signed so you can trust them.

Every attempt is logged with the exact reply from Apple, Google or the browser, so a failure is a fix, not a mystery.

Quiet hours, frequency caps and one-tap unsubscribe keep you on people’s good side.
Unlimited subscribers on every plan. Pay monthly by card, cancel any time.
For side projects and your first launch.
For growing apps that message every week.
For teams running many apps at volume.
Need more than Business? Let’s talk.
Yes. Push tokens belong to the Firebase project your app was built with, so Perchpush sends with that project’s key. You keep ownership, and Google’s free FCM quota.
Every hour Perchpush looks at the last 90 days of opens and app sessions for each device and picks the hour it engages most. New devices fall back to your app’s best hour. A send spreads over 24 hours.
Flutter, web, React Native, native iOS (Swift) and Android (Kotlin), a Node.js server SDK and a plain REST API.
Upload the same Firebase key, import your users from CSV and ship one app update with the Perchpush SDK. Existing tokens keep working.
One message handed to Apple, Google, a browser, your mail server or your SMS gateway. Held-back and opted-out users are always free, and every plan has unlimited subscribers.
Credentials are encrypted with a rotatable keyring, user identity can be signed with HMAC, roles limit who can do what, and every action lands in an audit log.
Create an app, connect Firebase and send a test to your own phone in a few minutes.