Introduction
FlushKit lets you trigger another_flushbar in-app notifications remotely from your server — without rebuilding or redeploying your Flutter app.
How it works
When your app starts, the FlushKit SDK opens a persistent Server-Sent Events (SSE) connection to api.flushkit.dev. This connection stays alive for the lifetime of your app session.
When you POST to /v1/notify from your server or the dashboard, FlushKit pushes the notification payload over that open SSE connection directly to every connected device in that project. The SDK receives the event and renders the Flushbar overlay immediately — no polling, no push notification infrastructure, no FCM/APNs setup required.
Delivery behaviour
FlushKit uses Server-Sent Events (SSE) to deliver notifications in real time. This means delivery depends on whether the app is connected.
| App state | Delivery |
|---|---|
| App open (foreground) | ✅ Delivered instantly |
| App backgrounded | ✅ Delivered on resume |
| App fully closed | ✅ Delivered on next open |
| No internet connection | ✅ Delivered on reconnect |
Key concepts
Events — Each notification delivery to a connected device counts as one event. Sending to 10 devices costs 10 events. Your plan includes a monthly event allowance that resets on the 1st of each month.
Projects — A project maps to one Flutter application. Each project has its own API key and notification history. Free accounts can have 1 project; Starter allows 5; Growth is unlimited.
API keys — Long-lived credentials scoped to a project. They start with fk_live_ and are used both in the Flutter SDK (to establish the SSE connection) and in your server-side HTTP requests (to send notifications). Keep them secret.