# Add a Custom Component

Learn how to create and upload custom components to <ProductName />.

***

## About This Task

:::tip Recommended approach
For most use cases, we recommend using the `Code` component to add custom code to your pipelines. You write the code directly in Builder, test it, and save it as a custom component to share with your workspace or organization — no GitHub setup required. For details, see [Add a Code Component](./create-code-component.mdx).
:::

Use the GitHub template to create a custom component if you need:
- External pip dependencies not already available in <ProductShortName />.
- Full version control and CI/CD testing via GitHub Actions.

For details on which approach fits your use case, see [Custom Components](/docs/concepts/about-pipelines/custom-components.mdx).

:::tip GPU Acceleration
By default, pipelines and indexes run on CPU. If your component will work better on a GPU, you can turn on GPU acceleration in the pipeline or index settings. For details, see [GPU Acceleration](/docs/concepts/about-pipelines/about-pipelines.mdx#gpu-acceleration).
:::

## Add a Custom Component

To add a custom component to <ProductName />:
1. [Create a custom component](./create-a-custom-component.mdx).
2. [Upload the custom component](./upload-a-custom-component-to-deepset-cloud.mdx).
