---
stage: Analytics
group: Product Analytics
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
# Customizable dashboards **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/98610) in GitLab 15.5 as an [Alpha feature](../../policy/alpha-beta-support.md#alpha-features).
Customizable dashboards provide a dashboard structure that allows users to create
their own dashboards and commit the structure to a repository.
## Usage
To use customizable dashboards:
1. Create your dashboard component.
1. Render an instance of `CustomizableDashboard`.
1. Pass a list of widgets to render.
For example, a customizable dashboard for users over time:
```vue
{{ s__('ProductAnalytics|Analytics dashboard') }}
```
The widgets data can be retrieved from a file or API request, or imported through HTML data attributes.
For each widget, a `component` is defined. Each `component` is a component declaration and should be included in
[`vue_shared/components/customizable_dashboard/widgets_base.vue`](https://gitlab.com/gitlab-org/gitlab/blob/master/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/widgets_base.vue)
as a dynamic import, to keep the memory usage down until it is used.
For example:
```javascript
components: {
CubeLineChart: () => import('ee/product_analytics/dashboards/components/widgets/cube_line_chart.vue')
}
```