A free thousand on every app.

Mobile push and in-app, priced on each app.

Xulo sends mobile push and shows a native card inside the app. A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.

9:41 Now
X

Xulo

Your order is on the way

It arrives today, before 20:00.

×

Arriving today

Open the card to follow the delivery.

Track order

1,000

Free monthly active users on every app

$6

Each additional 1,000, on that app

30 days

An open in the last 30 days. Permission is not required

$0

In-app impressions are not billed

“A new app starts at nothing. The first thousand is its own. An app nobody has opened never reaches the bill.”

Alptekin Can

Reload Apps

$0

No monthly active users, nothing to bill.

1,000

Each app counts its own MAU.

On the bill, and off it.

A monthly active user is a device that opened the app in the last 30 days.

Counted

The app was opened in the last 30 days. Push permission is not required. That device is a monthly active user. The first 1,000 on an app are free.

Not counted

  • The app stayed closed for 30 days. Push permission does not keep it on the bill.
  • Installed, and never opened.
  • A second app. It has its own 1,000.

01

The notification

A push carries a title, a body, an image, and a link. The image is attached on the device. If the image fails, the text still arrives.

The link can be a screen inside the app or an https address. The app opens the screen when it knows the address. Otherwise an https link opens in the system browser.

  • Expanded view shows the large image, the title, the body, and a button.
  • The app decides which screen opens.
9:41 Now
X

Xulo

Your order is on the way

It arrives today, before 20:00.

02

The card inside the app

The card is drawn natively in the app. It can show when the app comes to the foreground, or when the app calls a name you set. An open is coming to the foreground. Coming forward again while the app is already open does not count. The call is one line of code at the moment you choose, and it is not stored. It is not a web page, and it is not sent through Apple’s push service.

The panel and an agent fill the same record: image, title, body, one button, link, colors, a close button, and a place. The place is the center, full screen, a top banner, or a bottom banner. One card shows at a time. If several match, the newest published card wins.

  • Once, on the next open.
  • On every open.
  • On the first open only.
  • On the open you number, once.
  • After a specific push, on the next open of devices that received it.
  • When the app calls a name you set. Once on that device, or on every call.
X

03

Who receives it

Push and the card use the same audience. A segment, a tag, an external id, the install id, or a test device.

Xulo keeps an install id that survives a token refresh. A reinstall gets a new one. An external id is optional and does not replace the install id. Tags are text keys and values the app writes.

A purchase is an amount, a currency, and an order id. The person page keeps the lifetime total for each currency. A segment picks the last 24 hours, the last 7 days, the last 30 days, or all time: people who spent, people who did not, or people who spent at least an amount in one currency.

  • Subscribed.
  • Opened in the last 7 days.
  • Not opened for 30 days.
  • Spent at least an amount, in a window.
  • Test devices.
  • Then language, country, app version, and tag.
Subscribed
Opened in 7 days
Test devices

04

Who comes back

The panel keeps the day a device first opened, and the later days it opened. For devices first seen on one day, it shows the share that opened the app again on day 1, on day 7, and on day 30.

That is the last-open record, kept by day. It is not how long a session lasted. It is not a custom event. It is not a list of people.

  • Day 1.
  • Day 7.
  • Day 30.
  • Not a person list.

A person approves

Draft Approved Sending

05

A person sends

The panel, or an agent in Continue, Cursor, OpenAI, Windsurf, Anthropic, Google Antigravity, or Cline, can draft the message, the audience, and the card. The draft includes a count of who would receive it. One address works in all of them.

A person says yes. Then it sends. Writing the draft does not send it. The bill stays per app even when one key can draft for every app in the account.

  • An existing mobile push list can be brought into the panel.
  • Crossing 1,000 monthly active users does not stop the app.
  • Two variants can share one send. The audience is split evenly.
  • A scheduled push can arrive at a local time on each device.

A person approves

Draft Approved Sending

A few bills

Blocks are not prorated. 1,600 monthly active users on one app is the $6 block. 3,200 is three paid thousands. The same 1,600, split as 800 and 800, stays at $0.

$0

800 MAU

1 app

$6

1,600 MAU

1 app

$18

3,200 MAU

1 app

$0

800 and 800

2 apps

Same job, different meter.

One address, in the tool you already use.

https://mcp.xulo.io/mcp. The tool opens a sign-in screen, you allow it, and it comes back.

Cursor
OpenAI
Windsurf
Anthropic
Google Antigravity
Cline

What people ask before they start.

What does Xulo do?

It sends mobile push and shows a native in-app card. One SDK, one audience. The bill is per app, on monthly active users. The first 1,000 monthly active users on an app are free. After that, $6 per 1,000. Apps do not pool.

Does a new app pay?

A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0. The meter starts when a device opens the app. Push permission is not required.

What counts as a monthly active user?

A monthly active user is a device that opened the app in the last 30 days. Push permission is not required. A device that refused push and still opened the app is counted. A device that stays closed for 30 days drops off, even if push is allowed.

Do several apps share one free allowance?

No. Each app has its own 1,000 free monthly active users, then its own $6 blocks. A second app at 400 is $0 even when the first app is already paid.

Are in-app impressions billed?

No. Impressions, dismisses, and button clicks are not a separate charge. A device that opened the app in the last 30 days is already a monthly active user, including when it refused push.

Can an agent send it?

Add https://mcp.xulo.io/mcp. The tool opens a sign-in screen, you allow it, and it comes back. The agent can create the app, store the Apple key, draft a push or an in-app card, and import an audience. A person says yes. Then it sends. Writing the draft does not send it.

Can I start today?

Sign in and add an app. A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.

Can a send be two variants?

Yes. A push or the card can be two variants, split evenly. A person still approves. Xulo does not pick a winner.

One price, on each app.

A new app starts free. No users, nothing to bill.