The analytics your React Native app deserves

Self-hosted product analytics built for React Native. Same insights as Mixpanel — runs on your $4/month server. Your users' data never leaves your infrastructure.

GDPR compliantYour server, your dataMIT License
App.tsx
// 3 lines. That's it.
import { Bananalytics } from '@bananalytics/react-native';

Bananalytics.init({ apiKey: 'rk_...', endpoint: 'https://analytics.yourapp.com' });
Bananalytics.track('purchase_complete', { amount: 49.99 });

The problem

Analytics shouldn't cost your users' trust

  • Mixpanel charges $0.28/1K events — that's $2,500+/mo at scale
  • Your app's behavioral data sits on someone else's servers
  • Most analytics SDKs add 200KB+ to your bundle
  • GDPR becomes a nightmare with third-party vendors

The solution

Own your analytics stack completely

  • Purpose-built React Native SDK with auto-tracking
  • Deploy on a $4/month VPS — unlimited events, forever
  • Data never leaves your infrastructure
  • Lightweight, offline-first, batched, zero crashes

Features

Enterprise analytics, indie pricing

React Native SDK

Auto-captures lifecycle, screens, sessions. Expo & bare RN.

Conversion Funnels

See where users drop off. Multi-step funnels in seconds.

Retention Cohorts

Day 1, 7, 30 retention. Color-coded heatmaps.

Interactive Globe

3D globe with live user locations. Countries & cities.

Live Dashboard

Real-time events, active users. Updates every 5 seconds.

Offline-First

Queue offline. Auto-sync. Backoff with jitter. Zero crashes.

Setup

Zero to tracking in 5 minutes

No account. No credit card. No sales call.

1

Deploy

Docker boots the server + Postgres.

docker-compose up -d
2

Install

Add the SDK. Expo & bare RN.

npm i @bananalytics/react-native
3

Ship

Track events. See them live.

Bananalytics.track('signup')

Comparison

How Bananalytics stacks up

Same features. Fraction of the cost.

🍌Bananalytics
MixpanelAmplitudePostHog
Self-hosted
Open source
Built for React Native
Event tracking
Funnels
Retention
Real-time
Offline queue
3D Globe
Cookieless
Your server onlyself-host
Unlimited events
Price at 10M events$4/mo~$2,520/moCustom~$450

* GA4 is free but monetizes your data. PostHog self-hosted requires significant DevOps.

Performance

Runs on a single $5 server

Backend + Postgres + your Next.js dashboard. All on one box.

1B+

events / month

theoretical max throughput

30M

events on 40 GB

before the disk fills up

< 1.7 GB

RAM in use

backend + dashboard + Postgres

Pick a server by app stage

App stageHetzner boxCost / mo
MVP — first 1K usersCX22 · 2 vCPU · 4 GB · 40 GB€4.75
10K–50K MAUCX32 · 4 vCPU · 8 GB · 80 GB~€7
50K–200K MAUCX42 · 8 vCPU · 16 GB · 160 GB~€15
200K+ MAUDedicated DB box, private network~€30+

Full capacity math + monitoring playbook in the capacity docs.

“Your React Native app collects sensitive behavioral data. It should stay on your server.”

Your users trust you. Bananalytics keeps that trust.

Pricing

No per-event fees. Ever.

Self-host for free, or let us run it.

Self-Hosted

Your server. Your data. Your rules.

$0

+ ~$4/mo for a VPS

  • Unlimited events
  • All features
  • Full source (MIT)
  • Deploy in 5 min
  • Community support
Coming Soon

Bananalytics Cloud

Zero maintenance. We handle everything.

$29/mo

up to 1M events

  • Managed infra
  • Auto backups
  • Custom domain + SSL
  • 99.9% SLA
  • Priority support

FAQ

Questions, answered

Everything you need to know before you ship.

How long does setup actually take?
If you have Docker installed, the backend boots in about a minute (one docker-compose up -d command). The React Native SDK is ~3 lines of code: install the package, call init() with your API key, start tracking. End-to-end, you'll be sending real events in under 10 minutes — and that includes signing up and creating a project.
Does it work with Expo, or only bare React Native?
Both. Expo (managed workflow + EAS), Expo Dev Client, and bare React Native are all first-class. The only native module the SDK pulls in is AsyncStorage for offline event queuing, which works everywhere. No native code to link, no Xcode/Android Studio dance.
Will it slow down my app or bloat my bundle?
The SDK is ~12KB gzipped (vs. Mixpanel's ~200KB+). Events are batched and sent on background flush intervals (default every 30s, or when 20 events queue up), so there's no blocking work on the main thread. Network calls happen off your render path. We benchmark FPS impact at <0.1ms per track() call.
Is it really GDPR/CCPA compliant out of the box?
Yes — by design. All event data lives on your infrastructure, so you're the data controller and processor. The SDK has built-in opt-in/opt-out methods (Bananalytics.optOut()) and never collects PII automatically. No cookies, no third-party trackers, no IP storage by default. You still need a privacy policy and consent flow for your users, but there's no data-processing agreement to sign with us — because there's no us in the data path.
What happens to events if my server goes down?
The SDK persists events locally via AsyncStorage and retries with exponential backoff + jitter when the network or server is unavailable. Events queue up to a configurable maxQueueSize (default 1000) and flush automatically when connectivity returns. So a 2-hour Postgres outage means zero data loss — your users keep tracking, events sync once you're back.
Can I migrate my existing Mixpanel or Amplitude data?
Not automatically yet — historical data import is on the roadmap. For now, the practical approach is to dual-track for a few weeks (send events to both Mixpanel and Bananalytics simultaneously), then cut Mixpanel once you're confident. The SDK's API is intentionally similar to Mixpanel's (track, identify, screen) so migrating call sites is mostly a find-and-replace.
Why not just use PostHog (also open source)?
PostHog is great, but it's built for web-first analytics with React Native as an afterthought. Bananalytics is React Native-first: native session handling, app lifecycle tracking, offline queuing, and a dashboard built around mobile-specific events (screens, app_opened, push notifications). Plus, PostHog self-hosted requires significant DevOps — Bananalytics runs on a single $4/month VPS with one Docker command.
When will Bananalytics Cloud launch?
Soon — we're targeting Q3 2026 for managed Cloud with custom domains, SSL, and 99.9% SLA. Self-hosted is fully production-ready today. If you want early access to Cloud, join the waitlist and you'll get a discount at launch.

Ready to own your analytics?

Deploy in 5 minutes. No account, no credit card, no lock-in.