Skip to main content
1

Get a key

Every expansion is verified when it loads. Create a secret for the id you are going to use, for example my_expansion. You will paste it into meta.json as apiKey.The id and the key belong together: a key issued for one id will not load an expansion using a different one. See Publishing for what happens before your expansion is published.
2

Copy a template

Templates live in the app repository under packages/sdk-templates/:
  • ts for TypeScript
  • js for JavaScript
Copy one into your Expansions folder, under any name you like:
The folder name does not matter. meta.json’s id is what identifies your expansion.
3

Fill in meta.json

meta.json
id is lowercase letters, digits and _. Full rules in the manifest guide.
4

Open the app

The app picks the folder up without a restart. Open Project Settings → Expansions and you should see your expansion listed.
  • If it declares permissions, it waits at Needs approval until you press Review permissions.
  • Before it is published on NMCrate it loads marked Untrusted, which is normal during development.
  • If something is wrong, the card says what, and the logs button shows the expansion’s own log.
Then open a project. Your sidebar button appears there.
5

Edit and watch it reload

Save any file in the folder. The app rebuilds and swaps the expansion in place: no restart, no reopening the project. What changed is re-run, the rest keeps its state. See Lifecycle.
6

Editor setup

Nothing to install. When the app loads your folder it writes:
The template’s tsconfig.json already points at them. They come from the app that runs your code, so they can never be out of date. Delete them and they come back on the next load.For real React typing (correct DOM props, proper JSX), run npm i -D @types/react in your expansion folder. The app then stops writing the shim and leaves your types alone. node_modules is only ever your editor’s: it is never bundled into your expansion, and it is left out of a packed .nxe.

Next

Modules and imports

How files, CSS and assets come together

sdk reference

Everything you can add to the app

Examples

Working expansions to read