Skip to content

Push notifications without the plumbing.

Connect Apple and Android once. Reach every device with one API call, from your code or your coding agent.

First customer

StoreStockChecker

2,000 paying subscribers, built by the same founder.

SDKs for the stack you already ship on

Setup

A weekend of setup, down to two calls.

PushFleet holds the keys, signs the tokens, prunes the dead ones and logs every send. You register a device and send.

What PushFleet handles

Usually a weekend
  • Signs APNs provider tokens with your .p8 and refreshes them before Apple's 60-minute limit
  • Mints and refreshes OAuth tokens for FCM v1 from your service account
  • Keeps your Team ID, Key ID and bundle IDs on file
  • Picks Apple's sandbox or production endpoint for each device
  • Stores push tokens per user, per device
  • Prunes dead tokens (APNs 410, FCM UNREGISTERED)
  • Retries with backoff on 429 and 5xx
  • Logs every send, so you can answer "did it send?"

You bring:a .p8 key from Apple's developer portal and a service account from Firebase.

1

Register a device from your app

PushFleet.configure(publishableKey: "pf_pub_test_…")
PushFleet.register(deviceToken: token, userId: "user_8f3k")
2

Send from your server

import { PushFleet } from "pushfleet";

const fleet = new PushFleet(process.env.PUSHFLEET_SECRET_KEY);
await fleet.send({
  to: "user_8f3k",
  title: "Your order shipped",
  body: "Arriving Thursday",
});

Built for agents

Hand your agent the keys. It ships the push.

PushFleet speaks MCP, so your coding agent can set up push end to end, with only the permissions you give it.

  1. 1

    Grab your keys

    Download a .p8 key from Apple and a service account from Firebase.

  2. 2

    Hand them over

    Give them to your agent, or drop them in the dashboard.

  3. 3

    Your agent does the rest

    Over MCP it stores the keys, wires up your app and sends a test push.

storefront-agentTest mode

pf_rk_test_••••4k2q

Restricted key
  • MessagesNoneReadWrite
  • DevicesNoneReadWrite
  • TemplatesNoneReadWrite
  • CredentialsNoneReadWrite
  • API keysNoneReadWrite

You decide what it can touch.

Every agent gets its own key with granular permissions. Keep it in test mode until you trust it, and revoke it in one click.

  • Read, write or none, per resource
  • Separate test and live environments
  • Every call logged with the key that made it
https://mcp.pushfleet.com
Read the MCP guide

Platform

Everything you'd build yourself, already built.

Explore the docs

Send to people. PushFleet finds the device.

Rules pick the device and the channel, and fall back when nobody opens it.

Delivery log

Every send on every channel, with status and latency as it happens.

Credential vault

Upload your .p8 key and Firebase service account once. PushFleet signs and rotates for you.

Test and live modes

Flip between Apple's sandbox and production with one switch.

People, not tokens

Send to user_8f3k. PushFleet knows every device they own.

Dead-token cleanup

Tokens Apple and Google reject are pruned automatically.

One-click test send

Paste a device token, hit send, and watch it land. No curl, no JWTs.

Every channel, one at a time

Web Push, email, Slack, Discord, SMS and Telegram come next, on the same API.

Stop wiring, start pushing.

Early access opens for Apple and Android first.