> **Version 8** — **React** / **TypeScript**
> Also available:
- `?language=js` for JavaScript
- `?codeOnly=true` for code snippets only
- other versions: Version 10.3 (latest) (`/docs/api/main-config/main-config.md`), Version 10.4 (beta) (`/docs/10.4/api/main-config/main-config.md`), Version 9 (`/docs/9/api/main-config/main-config.md`)

# Main configuration

The main configuration defines a Storybook project's behavior, including the location of stories, addons to use, feature flags, and other project-specific settings.

## `main.js` or `main.ts`

This configuration is defined in `.storybook/main.js|ts`, which is located relative to the root of your project.

A typical Storybook configuration file looks like this:

```ts
// .storybook/main.ts
// Replace your-framework with the framework you are using (e.g., react-webpack5, vue3-vite)

const config: StorybookConfig = {
  // Required
  framework: '@storybook/your-framework',
  stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
  // Optional
  addons: ['@storybook/addon-essentials'],
  docs: {
    autodocs: 'tag',
  },
  staticDirs: ['../public'],
};

export default config;
```

## config

An object to configure Storybook containing the following properties:

* [`framework`](https://storybook.js.org/docs/8/api/main-config/main-config-framework.md) (Required)
* [`stories`](https://storybook.js.org/docs/8/api/main-config/main-config-stories.md) (Required)
* [`addons`](https://storybook.js.org/docs/8/api/main-config/main-config-addons.md)
* [`babel`](https://storybook.js.org/docs/8/api/main-config/main-config-babel.md)
* [`babelDefault`](https://storybook.js.org/docs/8/api/main-config/main-config-babel-default.md)
* [`build`](https://storybook.js.org/docs/8/api/main-config/main-config-build.md)
* [`core`](https://storybook.js.org/docs/8/api/main-config/main-config-core.md)
* [`docs`](https://storybook.js.org/docs/8/api/main-config/main-config-docs.md)
* [`env`](https://storybook.js.org/docs/8/api/main-config/main-config-env.md)
* [`features`](https://storybook.js.org/docs/8/api/main-config/main-config-features.md)
* [`indexers`](https://storybook.js.org/docs/8/api/main-config/main-config-indexers.md) (⚠️ Experimental)
* [`logLevel`](https://storybook.js.org/docs/8/api/main-config/main-config-log-level.md)
* [`managerHead`](https://storybook.js.org/docs/8/api/main-config/main-config-manager-head.md)
* [`previewAnnotations`](https://storybook.js.org/docs/8/api/main-config/main-config-preview-annotations.md)
* [`previewBody`](https://storybook.js.org/docs/8/api/main-config/main-config-preview-body.md)
* [`previewHead`](https://storybook.js.org/docs/8/api/main-config/main-config-preview-head.md)
* [`refs`](https://storybook.js.org/docs/8/api/main-config/main-config-refs.md)
* [`staticDirs`](https://storybook.js.org/docs/8/api/main-config/main-config-static-dirs.md)
* [`swc`](https://storybook.js.org/docs/8/api/main-config/main-config-swc.md)
* [`typescript`](https://storybook.js.org/docs/8/api/main-config/main-config-typescript.md)
* [`viteFinal`](https://storybook.js.org/docs/8/api/main-config/main-config-vite-final.md)
* [`webpackFinal`](https://storybook.js.org/docs/8/api/main-config/main-config-webpack-final.md)