Open-source ยท Self-hosted ยท Android + FCM

Android push notifications,
without the black box.

OneFCM is a self-hosted push platform for Android. One SDK, one App ID โ€” no google-services.json, no vendor lock-in. Target by user, tag, segment or topic, and watch delivery live.

// That's the whole integration.
dependencies {
    implementation("com.github.mobarokOP:OpenFCM:3.0.1")
}

OneFCM.init(context, appId = "YOUR_APP_ID") {
    baseUrl = "https://admin.onefcm.com"
}
// Device registered. Permission prompted. Pushes flowing. ๐ŸŽ‰

Everything OneSignal does for Android.
On your own server.

Built on Firebase Cloud Messaging HTTP v1 with a queue-based delivery engine.

๐Ÿ“ฑ

Zero-config SDK

No google-services.json, no Firebase libraries in your app. The SDK fetches config from your server and prompts for permission automatically.

๐ŸŽฏ

Smart targeting

All devices, specific users, tags, dynamic segments or topics โ€” one audience selector across dashboard and API.

๐Ÿ”—

Deep links that work

Send a link or custom data; taps route to the right screen in your app or open the browser โ€” with click tracking baked in.

โš™๏ธ

Reliable delivery engine

Queue-based fan-out, exponential-backoff retries, dead-token cleanup and per-device delivery logs.

๐Ÿ“Š

Real analytics

Sent, delivered, opened, CTR โ€” by day, country and Android version. Watch a campaign land in real time.

๐Ÿ”

Your data, isolated

Every app pushes through its own Firebase project. Hashed API keys, encrypted service accounts, full audit log.

Live in four steps

From zero to a push on a real device in under ten minutes.

Create an app

In the dashboard, add your app with its package name and copy the App ID.

Upload one file

Drop your Firebase service account JSON in app settings. Everything else is derived automatically.

Add the SDK

One Gradle line + init(appId). Devices register themselves.

Send

Compose in the dashboard or POST to /v1/notifications with an API key from your server.