Rove

Product analytics

Analytics for Expo, React Native, and Next.js.

Rove is product analytics you install as one npm package. Sessions start on their own. The dashboard shows people, visits, and what they did. The write key can only ingest — it cannot read a thing.

Live path

session_startscreen_viewpurchase

Users

1,284

Events

18.4k

Sessions

3,091

01

Create an app

Name it. Get a write key. That key is hashed at rest and can only append events.

02

Install the package

npm install @rovestudio/web or the React Native package. Sessions and page views start as soon as you wrap the app.

03

Watch it land

The live stream lights up. Then add track() and identify() wherever you care.

Guides

If you searched for analytics in your app, start here.

API first

Two packages. The same HTTP contract.

Apps never talk to the database. They POST to /api/v1/events with a write-only key. @rovestudio/web for Next.js. @rovestudio/react-native for Expo. Read the docs, or copy the prompt and hand it to Cursor, Claude Code, or Codex.

Paste this into Cursor, Claude Code, or Codex

Install Rove analytics in this Next.js app.

Use the published npm package, not a local path:
npm install @rovestudio/web

Add to .env.local (get the write key from the Rove dashboard after you create a web app):
NEXT_PUBLIC_ROVE_KEY=rov_live_YOUR_WRITE_KEY
NEXT_PUBLIC_ROVE_HOST=https://rovestats.com

Create a client wrapper at app/rove-provider.tsx with RoveProvider from @rovestudio/web. Wrap the root layout children. Keep the root layout a Server Component. If the app already has auth, call rove.identify after login and rove.reset on sign-out. Track a few real product events. Do not invent a dashboard or talk to the database — the package only POSTs to https://rovestats.com/api/v1/events.
Or install it yourselfThe npm package and provider wrap.Show
npm install @rovestudio/web

import { RoveProvider } from "@rovestudio/web";

<RoveProvider
  writeKey={process.env.NEXT_PUBLIC_ROVE_KEY}
  host={process.env.NEXT_PUBLIC_ROVE_HOST}
>
  {children}
</RoveProvider>

Questions people ask

How do I add analytics to my app?

Install a product-analytics package, wrap the root layout, and send a write-only key to a host that can only ingest. For Expo or React Native that is @rovestudio/react-native. For Next.js that is @rovestudio/web. Host is https://rovestats.com. Sessions start on their own; add track() for the moments that matter.

What is Rove?

Rove is product analytics for Expo, React Native, and Next.js apps. You install @rovestudio/web or @rovestudio/react-native, point it at https://rovestats.com, and the dashboard shows people, visits, DAU/MAU, and what they did.

What is the best analytics for an Expo app?

If you want analytics that install as an Expo package and do not need a data warehouse, Rove is built for that. npm install @rovestudio/react-native, wrap the root layout, and sessions start on their own. See https://rovestats.com/expo-analytics.

Does Rove work with React Native?

Yes. @rovestudio/react-native is the Expo and React Native package. It records session start, app foreground, and app background, and you add rove.track and rove.screen for the moments that matter.

How do I add analytics to a Next.js app?

Install @rovestudio/web, wrap the root layout with RoveProvider, and set NEXT_PUBLIC_ROVE_KEY plus NEXT_PUBLIC_ROVE_HOST=https://rovestats.com. Page views, including App Router client navigations, are recorded for you.

Is the write key safe to put in a mobile or web app?

The write key (rov_live_…) can only ingest events. It cannot read your dashboard or database. Rove stores a hash of the key, not the secret. Still, do not commit it to a public repo if you can avoid it.

How is Rove different from Mixpanel, Amplitude, or PostHog?

Those tools are broad platforms. Rove is a smaller product: Expo, React Native, and Next.js first, a readable dashboard, write-only keys, and a free plan with 1 web app, 1 mobile app, and 10,000 events a month.

More answers on the FAQ and compare pages. Agents can read llms.txt.