---
name: bijection-sprout-analytics
description: "Evaluate and integrate the Sprout Analytics component with Bijection."
---

# Sprout Analytics

Insights on how your React Native Expo app is used, with none of the infra.

- Package: @bijectionhq/sprout-analytics
- Category: Integrations
- Status: Preview
- License: Apache-2.0
- Bijection source (repository access required): https://github.com/bijectionhq/sprout-analytics/tree/232ade98230e1789388d57787278684d1d441a33/packages/analytics
- Upstream: https://github.com/ambjn/sprout/tree/d234c5483457d9188ae36a3bcefad8907b429019/packages/analytics
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/sprout-analytics

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/sprout-analytics.git
cd sprout-analytics
git checkout 232ade98230e1789388d57787278684d1d441a33
cd packages/analytics
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes @sprout-convex/analytics. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


> Agents: read this skill fully before writing code that uses Sprout Analytics. Follow the installation and configuration steps exactly.

# Sprout Analytics

## Instructions

Sprout Analytics is a Convex component that adds session tracking, custom event tracking, screen tracking, user identification, and error capture to React Native Expo apps without any external ingestion service or third-party database. It ships an Expo SDK, a Convex component with batched HTTP ingest, sharded rollup counters, and fingerprinted error issues, plus a CLI that wires everything into an existing Convex and Expo project in one command. Your analytics data stays entirely within your own Convex deployment.

### Installation

```bash
npm install @sprout-convex/analytics
```

Current npm version: `@sprout-convex/analytics@1.1.0`

## Use cases

- You want product analytics (events, screen views, sessions) in a React Native Expo app but do not want to send data to a third-party service like Mixpanel or Amplitude
- You need custom events and session tracking without standing up a separate analytics backend or managing another set of service credentials.
- You want a self-contained analytics setup that requires no external SLA, no provisioning, and no separate backend, only a Convex deployment you already have running.
- You need an offline-durable event queue that survives app kills and retries delivery with exactly-once ingest semantics.
- You need to throttle or kill ingest for a specific app on demand (a
  leaked write key, a cost spike) without redeploying anything.


## How it works

Sprout brings app analytics, insights, and error tracking to React Native Expo apps as a Convex component, so session tracking, custom events, screen views, user identification, and crash reporting all run inside your own Convex deployment instead of a third-party SaaS pipeline.

The Expo SDK exposes four calls: track, screen, identify, and captureException, that queue onto an offline-durable buffer and flush in batches with exactly-once delivery, so nothing's lost across app kills or dropped connectivity. Sessions are tracked automatically via AppState boundaries, with no manual session management required in application code. Errors are fingerprinted by type and stack trace, so repeat crashes collapse into one issue with an open/resolved/ignored workflow instead of flooding a flat event stream.

A CLI handles setup end-to-end: sprout init wires the component, ingest route, registration mutation, and Expo root layout into an existing Convex + Expo app in a single pass, and sprout dashboard serves a prebuilt local dashboard: overview charts, sessions, events, and issues, against your live deployment, with nothing extra to host. Ingest is protected by a write key, with an optional kill switch and hourly rate limit you can flip on demand without redeploying anything.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by Sprout Analytics is not needed

## Resources

- [npm package](https://www.npmjs.com/package/%40sprout-convex%2Fanalytics)
- [GitHub repository](https://github.com/ambjn/sprout)
- [Live demo](https://sprout-convex-analytics.vercel.app)
- [Convex Components Directory](https://www.convex.dev/components/sprout-convex/analytics)
- [Convex documentation](https://docs.convex.dev)