Overview

The MakeCode editor allows users to publish their own extensions and tutorials that can then be used in the editor. This is useful for publishing drivers for accessories or other useful pieces of hardware, as well as adding new software features. The MakeCode team have published a guide to build your own extensions and a guide to writing tutorials


Adding an extension

Extension approval process

Extension approval requirements

Supporting micro:bit V1 and V2 boards in your extension

Tutorial approval process


Adding an extension

To add an extension, go to the settings ⚙️ menu and choose Extension from the dropdown. You can pick from the gallery or search for an extension 

 


Only packages on the approved extension list are visible in the MakeCode Editor on makecode.microbit.org. If the Extension is published on Github, it is possible to paste the URL in the extension search box and the editor will find it and allow anyone to add it to their project.



Extension approval process


Approval is required for your extension to appear in the search and be listed on the approved extension list. To gain approval you need to submit your extension for review.


The extension must meet specific requirements around documentation and stability because it's important that our users have a great experience when learning with the micro:bit.


Once we are satisfied that your extension meets requirements (see this example repo), we will submit a Pull Request to the pxt-microbit GitHub Repository to update the following files with your information:


https://github.com/Microsoft/pxt-microbit/blob/master/targetconfig.json and

https://makecode.microbit.org/extensions


A member of the team will comment on the Pull Request asking the MakeCode team to approve.


Submit an extension

Extension approval requirements

Before you submit your extension for approval, check that it meets the following requirements:

This extension supports a commercially available micro:bit accessory or sensor that is for Educational use and is in alignment with the Foundation's mission statement 
The accessory has been submitted for listing on the microbit.org website. Use the form here https://form.jotformeu.com/83453273451355
The extension is primarily written in English (block translations are very welcome)
The extension is MIT licensed. This licensing is easy to understand and use and ensures sustainability.
The exenstion does not make use of mBed and uses CODAL/DAL
The README contains a link to the product page or blog entry.
The README contains well-commented examples of use, using TypeScript or embedded editor elements, rather than screengrabs/images
Blocks are lowercased unless they refer to acronyms.
Blocks have tooltips and links to online help using the Makecode Markdown system.
The extension is in a finished state. Extensions that are in development should be marked 'beta' in the repository description.
You have provided a test suite (test.ts) within the extensions(s). The test suite should be comprehensive enough that if Microsoft (who run MakeCode) or the Micro:bit Educational Foundation make any underlying changes to the way the micro:bit compilation happens, we can be sure that your programs and blocks will still work.
Tests should cover all functionality and be documented so that it's clear how to test it, what to expect and what it is considered a pass/fail. If should not throw errors in the simulator if it is using non simulated hardware.
You are a member of the micro:bit development community on Slack and have joined the #makecode and #makecode-pkg-owners channels.
The repository contains an icon.png to aid search. (Please ensure the icon is 300 x 200pixels and less than 100Kb in size as users will need to download it)
TypeScript follows usual JavaScript notations: camelCase for functions, namespace, class members; UPPERCASE for class names, enum/enum members.
Ensure the filenames and extensions listed in pxt.json eg test.ts exactly match those in the repository.


NB: In exceptional circumstances we may approve extensions that don’t meet all these criteria, or choose not to approve extensions for any reason.


Supporting micro:bit V1 and V2 boards in your extension

If your extension is designed to work on both micro:bit V1 and V2 board versions and you need to differentiate between the two for specific functions, you should do so by using the hardware version API within your script.

If you have a specific function that only works on a V2 board, you should place this within a 'micro:bit V2' subcategory.


Tutorial approval process

Approval is required in order for your tutorial to have the Unapproved contentbanner and 'Report Abuse' button removed from the title bar and be listed on the approved tutorial list.


If your extension repository contains a tutorial, this is covered in the extension approval process.


If you are submitting a tutorial repository only, please use the tutorial approval process


The tutorial must meet specific requirements around documentation and stability because it's important that our users have a great experience when learning with the micro:bit.


Once we are satisfied that your extension meets requirements (see this example tutorial), we will submit a Pull Request to the pxt-microbit GitHub Repository to update the following files with your information:


https://makecode.microbit.org/tutorials


A member of the team will comment on the Pull Request asking the MakeCode team to approve.


Requirements

Authors will provide an email address and contact number to the Foundation 

Authors will join a #tutorial-authors slack channel