---
title: Quickstart
description: Guide on how to build an extension quickly
keywords: quickstart, extensions
aliases:
- desktop/extensions-sdk/tutorials/initialize/
- /desktop/extensions-sdk/quickstart/
weight: 20
---
Follow this guide to get started with creating a basic Docker extension. The Quickstart guide automatically generates boilerplate files for you.
## Prerequisites
- [Docker Desktop](/manuals/desktop/release-notes.md)
- [NodeJS](https://nodejs.org/)
- [Go](https://go.dev/dl/)
> [!NOTE]
>
> NodeJS and Go are only required when you follow the quickstart guide to create an extension. It uses the `docker extension init` command to automatically generate boilerplate files. This command uses a template based on a ReactJS and Go application.
In Docker Desktop settings, ensure you can install the extension you're developing. You may need to navigate to the **Extensions** tab in Docker Desktop settings and deselect **Allow only extensions distributed through the Docker Marketplace**.
## Step one: Set up your directory
To set up your directory, use the `init` subcommand and provide a name for your extension.
```console
$ docker extension init <my-extension>
```
The command asks a series of questions about your extension, such as its name, a description, and the name of your Hub repository. This helps the CLI generate a set of boilerplate files for you to get started. It stores the boilerplate files in the `my-extension` directory.
The automatically generated extension contains:
- A Go backend service in the `backend` folder that listens on a socket. It has one endpoint `/hello` that returns a JSON payload.
- A React frontend in the `frontend` folder that can call the backend and output the backend’s response.
For more information and guidelines on building the UI, see the [Design and UI styling section](design/design-guidelines.md).
## Step two: Build the extension
To build the extension, move into the newly created directory and run:
```console
$ docker build -t <name-of-your-extension> .