# Building your own extension

In MakeCode you can create new custom blocks to use in the editor and include them in your projects. You do this by building an extension. Extensions are really useful for publishing drivers for accessories and hardware, as well as adding in new software features.

Only extensions on the 'approved extension list' are available to users directly to add into the MakeCode editor at https://makecode.microbit.org.

## Publishing extensions

You publish an extension on GitHub and request **[approval](./approval)** for it if necessary.

## How do I start building a extension?

Go to the MakeCode extension documentation and see the [getting started](https://makecode.com/packages/getting-started) page.

## ~ hint

Extensions are also known, and referred to, as _packages_. The term _package_ is currently used in the MakeCode documentation for developing and deploying extensions.

## ~
