In development. Nothing to install yet.

Zilcast now

Own your push tokens.

An open-source push campaign server for iOS and Android apps. Run it yourself as one container with Postgres, or let us host it. Your device tokens stay yours, so you can switch providers whenever you like.

Zilcast planned Import from OneSignal without asking users to reinstall Bring the tokens you already have and keep sending while your app update rolls out. Zilcast planned Consent-ready by default Marketing and transactional messages kept apart, with a preference center and a consent log.
Join the waitlist

AGPL-3.0 server, MIT SDKs. Free to self-host.

Why now

Sending a push through APNs or FCM is free. OneSignal became the default because it handles everything around the send. Here is what that costs once your app grows, in OneSignal's own words.

  • The Free plan caps mobile push at 1,000 MAU

    “On the Free plan, you must have fewer than 1,000 monthly active users (MAU) to send mobile push and in-app messages.” The cap applies to your whole organization, summed across all its apps, over a trailing 30 days. MAU “does not depend on subscription status”, so devices that never allowed notifications still count. Go over, and mobile push stops sending until you upgrade, after a 24-hour grace period.

    Source: OneSignal Billing FAQ

  • Past the cap, the bill grows with every user

    The Growth plan “starts at $19/mo”, and mobile push adds “$0.012 per monthly active user”. At list price that comes to about $139 a month at 10,000 MAU and about $619 at 50,000. That's our arithmetic: $19 + MAU × $0.012.

    Source: OneSignal pricing, checked 9 November 2026

  • Your audience is hard to take with you

    OneSignal's iOS SDK is released under a “Modified MIT License” whose second clause says copies “may only be used in connection with services provided by OneSignal.” Leaving means a new SDK, a new app release, and a long tail of users still on the old version.

    Source: OneSignal-iOS-SDK license

Below 1,000 MAU, OneSignal's Free plan is a good deal and a mature product. Zilcast is for apps that have outgrown it.

What we're building

Planned for version 1. None of this has shipped yet. This is the build order.

  1. Sending core

    Direct APNs with .p8 token auth, so your iOS app needs no Firebase. FCM HTTP v1 for Android. Dead tokens are removed as soon as APNs or FCM reports them. A send API with idempotency keys, plus test devices.

  2. SDKs for Swift and Flutter

    Log users in and out to tie devices to accounts, set attributes, track events and opens, handle deep links. React Native and Expo apps can send the tokens they already collect.

  3. Campaigns

    Segments built from attributes, last seen, platform, app version, country and language, with a live audience count. Send now, at a set time, or at each recipient's local time.

  4. Dashboard and honest metrics

    Compose and send without shipping code. Reports keep “accepted by APNs or FCM” separate from “opened”, and never show a “delivered” number the platforms don't actually report.

  5. Migration and self-hosting

    The OneSignal importer with bridge mode. docker compose up for the app and Postgres. A migration guide. No telemetry by default.

Not in scope: email, SMS, WhatsApp and web push. Zilcast is mobile push only.

Move off OneSignal without asking users to reinstall

OneSignal's subscription export includes each device's push token. Those tokens come from Apple and Google, and your APNs key and Firebase project already belong to you. So the planned importer can reach your existing audience on the day you switch, while the app update with the new SDK rolls out.

  1. Export your subscriptions from OneSignal, from the dashboard or with the CSV export API.
  2. Import the file into Zilcast. It reads each token and its platform.
  3. Send in bridge mode. Campaigns reach people still on your current app version.
  4. Ship the release with the Zilcast SDK. As people update, they move over and the imported tokens retire.

Bridge mode is temporary by design: imported tokens fade as people change phones or reinstall, so the SDK swap is the lasting fix. We're testing the Android side of this in a technical spike right now.

Source: OneSignal docs, Exporting data

Open source, and staying that way

Server: AGPL-3.0
Run it, change it, self-host it. Anyone who offers a modified version as a service has to publish their changes.
SDKs: MIT
Use them in any app, with any backend. No clause tying them to our service.

The core stays AGPL. Segments and scheduled campaigns stay in the open-source edition. No telemetry by default.

Self-host it, or let us run it

Self-host

Free

One Docker image and Postgres on your own server. No user caps from us. Your data never leaves your infrastructure.

Hosted

Founding pricing for early users

We run it for you. Prices aren't set yet, and people on the waitlist get founding pricing. The plan: flat tiers sized for indie apps, billed on devices you can actually reach, and no hard stop when you grow past a tier.

Tell us what you'd pay in the waitlist form. Your answer shapes the tiers.

Questions

Why not just use FCM directly?

You can, and for sending a message it's free. Zilcast uses APNs and FCM underneath too. The work is the layer around the send: cleaning up dead tokens, linking several devices to one user, tracking opens, scheduling, segments, and a dashboard where someone can send a campaign without shipping code. Zilcast is that layer, open source.

Is it ready?

No. Zilcast is in development and there's nothing to install yet. Join the waitlist and we'll email you when there's something to try. Tick the OneSignal box to be among the first to test the importer.

What's the license?

The server is AGPL-3.0 and the SDKs are MIT. Self-hosting is free.

Who's building it?

Mustafa Enes Demirkaya, an indie mobile developer based in Turkey. Questions and ideas are welcome at hello@zilcast.dev.

What happens to my email?

It's stored with your answers to run this waitlist. We'll email you about early access, and about product news only if you tick that box. No tracking cookies, no ad pixels. The privacy notice has the details.

Join the waitlist

Only your email is required. The other questions take a minute and decide what gets built first.

We'll email you when there's something to try.

Monthly active users of your app
What do you use for push today?
Your stack (pick all that apply)
Would you self-host or use the hosted version?
For the hosted version, what would you pay per month?