https://github.com/hermanya/react-lean-analytics
📊A/B testing for React apps made super easy
https://github.com/hermanya/react-lean-analytics
Last synced: 11 months ago
JSON representation
📊A/B testing for React apps made super easy
- Host: GitHub
- URL: https://github.com/hermanya/react-lean-analytics
- Owner: Hermanya
- Created: 2018-12-23T04:59:09.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-23T01:42:56.000Z (about 2 years ago)
- Last Synced: 2025-04-10T02:46:05.614Z (about 1 year ago)
- Language: TypeScript
- Homepage: https://leananalytics.io
- Size: 666 KB
- Stars: 16
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# react-lean-analytics
> React package for lean analytics
[](https://www.npmjs.com/package/react-lean-analytics) [](https://standardjs.com)
## Install
```bash
npm install --save react-lean-analytics
```
To see analytics in the dashboard, ensure you have set your `NODE_ENV` environment variable to `production`.
> **The invocations and validations only count in production mode.**
## Usage
```tsx
import * as React from 'react'
import {Experiment, Variant} from 'react-lean-analytics'
class Example extends React.Component {
render () {
return (
{callback => (
)}
{callback => (
)}
)
}
}
```
### Using weights
Weights are proportional. The default weight for each variant is 1. If you want to make a variant to be chosen more often, give it a "heavier" weight.
```tsx
import * as React from 'react'
import {Experiment, Variant} from 'react-lean-analytics'
class Example extends React.Component {
render () {
return (
{callback => (
)}
{callback => (
)}
{callback => (
)}
)
}
}
```
## Props
### Experiment
| Name | Type | Default | Description |
| ---------------------- | -------- | --------------------------------------- | ---------------------------------------------------------------------------- |
| id | string | - | Experiment id. |
| forceVariant | number | - | Optional variant index to render. Helper for consistent experience. |
| onSelectedIndex | function | - | Optional callback to get variant index at render. (index: number) => void |
| trackedAction | string | - | The tracked action of you experiment. |
| shouldCollectAnalytics | boolean | `process.env.NODE_ENV === 'production'` | Optional. **The invocations and validations only count in production mode.** |
### Variant
| Name | Type | Default | Description |
| ----------- | ------ | ------- | ------------------------------------------------------------------- |
| description | string | - | What makes this variant different from others. |
| weight | number | 1 | ex. 0.5, 2, 99. variants invocations can be 'controlled' by weights |
## License
MIT © [Hermanya](https://github.com/Hermanya)