Ask your app analytics anything.

Add one line to your Swift or Expo app. Blip records every screen and every tap on its own, with no tracking code per button. Then ask “how many people dropped off during onboarding?” and get the number, the table and the query behind it.

Free while in beta. No card needed.

How many people dropped off during onboarding?

Of 1,240 people who saw the first onboarding screen this week, 812 reached Home. 428 dropped off, a 34.5% drop-off, and most of them left on the notifications screen.

stepusersdrop_off_pct
Welcome1,240—
Notifications90327.2
Home81210.1
How it works

From install to answers in five minutes

01

Add one line

Blip.start(key:) in Swift, or wrap your Expo root in <blip.Provider>. Sessions, screens and every button, card and switch tap are tracked from that moment.

02

Name what matters

Give a button a tracking id (accessibilityIdentifier or testID) and its taps carry that name. Untagged ones are named by their text. track() covers anything that isn’t a tap.

03

Ask

Type a question. Blip writes the query against your app’s own data, runs it, and answers in a sentence with the numbers.

SDKs

Swift and Expo, one line each

Batched uploads, offline queue, automatic sessions. No dependencies.

import Blip

// Once, at launch. From here every screen, button, switch, cell and tappable card is tracked.
Blip.start(key: "app_your_key_here")

// Optional: a tracking id names a control. Without one it's named by its title or text.
startButton.accessibilityIdentifier = "start_chat"

// SwiftUI: screens and buttons take one modifier each.
HomeView().trackScreen("Home")
Button("Start chat") { ... }.blipID("start_chat")

// Anything that isn't a tap:
Blip.track("purchase", ["plan": "pro"])
Blip.identify("user_123", ["plan": "pro"])
Questions

Ask it the way you'd ask a teammate

If it happened in your app, you can ask about it.

How many people dropped off after the first onboarding screen?
How many users chat more than 20 times a week?
Which screen do people leave the app from most?
Do users on 2.3 open the app more than users on 2.2?
How many people came back the day after signing up?
What do people tap right before they hit the paywall?
Why Blip

Analytics without the analytics project

No tracking code per button

Buttons, switches, list rows and tappable cards are captured automatically, each with the screen it was on. You add a tracking id only where you want a specific name.

Answers you can check

Every answer shows the table it came from and the SQL that ran. Edit the SQL and run it yourself if you want to dig further.

Your own database per app

Each app gets a separate SQLite database on Cloudflare, so one app’s data never sits in a table with another’s.

Read-only by design

Queries run inside a wrapper that only accepts a single SELECT. The model can read your events. It cannot change them.

Free while in beta

Up to 20 apps per account and unlimited questions during the beta. Paid plans come later, and we’ll tell you well before anything changes.

Questions

Which platforms are supported?

Swift (iOS 15+, macOS, tvOS, visionOS) and Expo or plain React Native. Anything else can send events over one HTTP endpoint.

Is the SDK key a secret?

No. It can only add events to its own app, the way a Mixpanel or Amplitude token works, so it is fine to ship inside the app. Reading data needs your login.

What does it track on its own?

App opens, sessions, backgrounding, screens, and taps. In UIKit every UIButton, UISwitch, segmented control, bar button, table and collection cell, and any view with a tap gesture is captured. In Expo every Button, Pressable and Touchable, including your own cards built from them. SwiftUI buttons need one .blipID("name") modifier each, because SwiftUI draws them without a UIKit view to hook.

Do you track personal data?

Each install gets a random id. Taps record the component’s tracking id and its visible label, never what anyone types into a text field. If you call identify() with your own user id and traits, those are stored too.

What happens offline?

Events queue in memory and go out with the next successful upload, up to 1,000 at a time.

How accurate are the answers?

Each answer is a real SQL query over your events, so the numbers are exact for what the query asks. If the model reads a question differently than you meant, the SQL under the answer shows it.

Know what your users do this week

Create an app, paste one line, and ask your first question today.