Skip to content

Commit 137b98a

Browse files
Auzjdorn
andauthored
How it works docs (growthbook#249)
Co-authored-by: Jeremy Dorn <[email protected]>
1 parent 36df0fb commit 137b98a

File tree

3 files changed

+113
-0
lines changed

3 files changed

+113
-0
lines changed

packages/docs/pages/_app.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ const navLinks = [
2222
href: "/",
2323
name: "Docs Home",
2424
},
25+
{
26+
href: "/overview",
27+
name: "How it works",
28+
},
2529
{
2630
href: "/self-host",
2731
name: "Self-Host",

packages/docs/pages/overview.mdx

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# What is GrowthBook?
2+
3+
GrowthBook is a modular platform. You can use it for either Feature Flags, Experiment Analysis, or both.
4+
5+
[**Feature Flags**](/app/features) you create in the GrowthBook UI are published to our API as a JSON file. Pass this JSON into our SDKs and use the feature flags throughout your code. If a feature is running as part of an A/B test, we'll fire a tracking callback in the SDK so you can record that event in your data warehouse or analytics platform for later analysis.
6+
7+
[**Experiment Analysis**](/app/experiments) queries your data warehouse for raw experiment data and runs it through our stats engine to produce a report. No raw user-level events or PII are ever sent to GrowthBook. We only get back aggregate info instead (mean, stddev, etc.).
8+
9+
![GrowthBook: How it Works Diagram](/images/feature-flagging-experimentation-diagram-766.png)
10+
11+
## Feature Flags
12+
13+
[Feature flags](/app/features) are a very powerful developer tool. They give you deep control over how and when new functionality is released to your users.
14+
15+
GrowthBook supports 4 types of features:
16+
17+
- **Boolean (on/off)**
18+
- **Number**
19+
- **String**
20+
- **JSON**
21+
22+
Using features in your code is easy. Here's an example from our Javascript SDK:
23+
24+
```js
25+
// For boolean features
26+
if (growthbook.feature("my-feature").on) {
27+
// ... Do something
28+
}
29+
30+
// For number, string, and JSON features
31+
const value = growthbook.feature("other-feature").value;
32+
```
33+
34+
GrowthBook also supports different environments, so you can, for example, have a feature enabled in **dev** but not **production**.
35+
36+
You can also change the value of a feature with **Override Rules**. The following types of rules are supported:
37+
38+
- **Targeted** - Choose a subset of users based on targeting attributes
39+
- **Percentage Rollout** - Use random sampling to pick a certain percent of users
40+
- **A/B Experiment** - Run an A/B test between different feature values
41+
42+
You can pull feature definitions as a JSON file from the [API](/app/api) or setup a [Webhook](/app/webhooks) to push the same JSON to your servers automatically when something changes.
43+
44+
This feature definitions JSON is passed into our [SDKs](/lib) along with [user targeting attributes](/app/features#targeting-attributes).
45+
46+
Read more about [features here](/app/features).
47+
48+
## Experiment Analysis
49+
50+
GrowthBook needs to connect to your [Data Source](/app/datasources) in order to query experiment results. We support all of the popular SQL data warehouses in addition to Mixpanel and Google Analytics. GrowthBook is extremely flexible and can support almost any schema structure with a little bit of configuration.
51+
52+
![Data warehouses supported by GrowthBook](/images/GrowthBook-supported-DB-766.png)
53+
54+
Once connected to a data source, you need to build a re-usable library of [Metrics](/app/metrics). Metrics are what your experiments are trying to improve. Metrics are defined via SQL (if your data source supports it) or a simple query builder. The following types are supported:
55+
56+
- **binomial** - simple yes/no conversion metrics (e.g. `started trial`, `bounce rate`, `purchased`)
57+
- **count** - when the number or magnitude of conversions matters (e.g. `downloads per user`, `points earned`)
58+
- **revenue** - the amount of revenue earned (e.g. `revenue per user`, `average order value`)
59+
- **duration** - the time it takes to do something (e.g. `page load time`, `time on site`)
60+
61+
Once these are metrics are set up, you can import experiments and start analyzing the results. GrowthBook uses a [Bayesian statistics engine](/statistics) to determine the probability that a variation is better than the control, as well as how much better it is and how risky it is to stop the experiment now.
62+
63+
![Results Table](/images/results-table.png)
64+
65+
Your data team can drill down into results by custom [dimensions](/app/dimensions), view the raw SQL that GrowthBook is running on your data warehouse, and export results to a Jupyter notebook for even deeper analysis.
66+
67+
Read more about [experiments here](/app/experiments).
68+
69+
## Use Cases
70+
71+
There are typically three reasons that teams use GrowthBook.
72+
73+
### 1. Full Experimentation Platform
74+
75+
In this use case, companies use Feature Flags and our SDKs to run experiments in their applications. Then they use our Experiment Analysis to look at the results and decide on a winner.
76+
77+
This is best for companies that are either just starting with experimentation or want to completely switch away from their current way of doing things.
78+
79+
### 2. Feature Flags Only
80+
81+
In this use case, companies don't run experiments at all and just use GrowthBook feature flags within their engineering team.
82+
83+
This is best for companies that don't have enough traffic to run full experiments, but still want all of the benefits that feature flags provide.
84+
85+
### 3. Experiment Analysis Only
86+
87+
In this use case, companies are already running experiments and analyzing results usually with either a home-built reporting system or by manually creating Jupyter notebooks. They use GrowthBook to automate and improve the analysis process to save time and make better decisions.
88+
89+
This is best for companies that already have a robust process for running experiments and just need a little help analyzing results at scale.
90+
91+
## Next Steps
92+
93+
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
94+
<a href="/self-host" class="no-underline" style={{ textDecoration: "none" }}>
95+
<div class="p-4 rounded-lg text-white bg-gradient-to-b from-blue-400 to-blue-500 no-underline text-center">
96+
How to Self-Host
97+
</div>
98+
</a>
99+
<a href="/lib" class="no-underline" style={{ textDecoration: "none" }}>
100+
<div class="p-4 rounded-lg text-white bg-gradient-to-b from-purple-400 to-purple-500 no-underline text-center">
101+
SDK Docs
102+
</div>
103+
</a>
104+
<a href="/faq" class="no-underline" style={{ textDecoration: "none" }}>
105+
<div class="p-4 rounded-lg text-white bg-gradient-to-b from-purple-500 to-purple-600 no-underline text-center">
106+
Frequently Asked Questions
107+
</div>
108+
</a>
109+
</div>
49.3 KB
Loading

0 commit comments

Comments
 (0)