docs/configure/telemetry.mdx
Storybook collects completely anonymous data to help us improve user experience. Participation in this anonymous program is optional, and you may opt-out if you'd not like to share any information.
Hundreds of thousands of developers use Storybook daily to build, test, and document components. Storybook is framework agnostic and integrates with the front-end ecosystem:
In the past, our improvement process relied on manually gathering feedback. But with a growing userbase and the need to support a wide variety of integrations, we need a more accurate method for gauging Storybook usage and pain points.
These telemetry data help us (the maintainers) to prioritize the highest impact projects. That allows us to keep up with trends in the front-end ecosystem and verify that our community's hard work achieves the intended result.
We collect general usage details, including command invocation, Storybook version, addons, and the view layer.
Specifically, we track the following information in our telemetry events:
init, upgrade, dev, build).npm, yarn).Access to the raw data is highly controlled, limited to select members of Storybook's core team who maintain the telemetry. We cannot identify individual users from the dataset: it is anonymized and untraceable back to the user.
We take your privacy and our security very seriously. We perform additional steps to ensure that secure data (e.g., environment variables or other forms of sensitive data) do not make their way into our analytics. You can view all the information we collect by setting the STORYBOOK_TELEMETRY_DEBUG to 1 to print out the information gathered. For example:
Will generate the following output:
{
"anonymousId": "8bcfdfd5f9616a1923dd92adf89714331b2d18693c722e05152a47f8093392bb",
"eventType": "dev",
"context": {
"isTTY": true,
"platform": "macOS",
"nodeVersion": "24.11.0",
"storybookVersion": "10.3.0-alpha.9",
"cliVersion": "10.3.0-alpha.9",
"projectSince": 1717334400000
},
"payload": {
"versionStatus": "cached",
"storyIndex": {
"storyCount": 0,
"componentCount": 0,
"pageStoryCount": 0,
"playStoryCount": 0,
"autodocsCount": 0,
"mdxCount": 0,
"exampleStoryCount": 8,
"exampleDocsCount": 3,
"onboardingStoryCount": 0,
"onboardingDocsCount": 0,
"version": 5
},
"storyStats": {
"factory": 0,
"play": 0,
"render": 1,
"loaders": 0,
"beforeEach": 0,
"globals": 0,
"storyFn": 5,
"mount": 0,
"moduleMock": 0,
"tags": 0
}
},
"metadata": {
"generatedAt": 1689007841223,
"settingsCreatedAt": 1689007841223,
"hasCustomBabel": false,
"hasCustomWebpack": false,
"hasStaticDirs": false,
"hasStorybookEslint": false,
"refCount": 0,
"portableStoriesFileCount": 0,
"packageManager": {
"type": "yarn",
"version": "3.1.1"
},
"monorepo": "Nx",
"framework": {
"name": "@storybook/react-vite",
"options": {}
},
"builder": "@storybook/builder-vite",
"renderer": "@storybook/react",
"storybookVersion": "9.0.0",
"storybookVersionSpecifier": "^9.0.0",
"language": "typescript",
"storybookPackages": {
"@storybook/addon-docs/blocks": {
"version": "9.0.0"
},
"@storybook/react": {
"version": "9.0.0"
},
"@storybook/react-vite": {
"version": "9.0.0"
},
"storybook": {
"version": "9.0.0"
}
},
"addons": {
"@storybook/addon-onboarding": {
"version": "1.0.6"
}
}
}
}
Additionally, if Storybook's guided tour is enabled, it will generate the following output:
{
"eventType": "addon-onboarding",
"payload": {
"step": "1:Welcome",
"addonVersion": "1.0.6"
},
"metadata": {
// See above for metadata that's collected.
}
}
The data we collect is anonymous, not traceable to the source, and only meaningful in aggregate form. No data we collect is personally identifiable. In the future, we plan to share relevant data with the community through public dashboards (or similar data representation formats).
You may opt out of the telemetry within your Storybook configuration by setting the disableTelemetry configuration element to true.
If necessary, you can also turn off telemetry via the command line with the --disable-telemetry flag.
Or via the STORYBOOK_DISABLE_TELEMETRY environment variable.
In addition to general usage telemetry, you may also choose to share crash reports. Storybook will then sanitize the error object (removing all user paths) and append it to the telemetry event. To enable crash reporting, you can set the enableCrashReports configuration element to true.
You can also enable crash reporting via the command line with the --enable-crash-reports flag.
Or by setting the STORYBOOK_ENABLE_CRASH_REPORTS environment variable to 1.
Enabling any of the options will generate the following item in the telemetry event:
<CodeSnippets path="storybook-telemetry-crash-report-event.md" />