React
Build polished extension interfaces with React, strong tooling, and a mature component ecosystem.
Start faster by generating extensions from official templates instead of building folder structure and config from scratch.
Replace <slug> with the template you want to start from.
Template slugs follow a <context>-<stack> pattern. The prefix tells you what kind of extension surface you get:
Quick picks:
new (JS) or new-typescript (TS) for a minimal baseline.new-react, new-preact, new-vue, or new-svelte.content (JS) or content-react, content-vue, etc.Highlighted starter options include TypeScript, JavaScript, Svelte, Vue, React, and Preact.
Build polished extension interfaces with React, strong tooling, and a mature component ecosystem.
Build polished extension interfaces with Preact, lighter bundles, and familiar JSX you know well.
Build polished extension interfaces with Vue, single-file flow, and predictable structure in UIs.
Build polished extension interfaces with Svelte, lean components, and tiny runtime in shipped UI.
Build polished extension interfaces with TypeScript, static typing, and safer refactors at scale.
Build polished extension interfaces with JavaScript, light tooling, and quick sketch-to-UI speed.
The grid above is a curated subset of popular stacks. Card links use templates.extension.dev when a live preview exists. The authoritative list of slugs is every folder name under extension-js/examples—those names map 1:1 to --template=<slug>. Beyond new* baselines, the repo includes many context-first families (for example action, content, sidebar, and specialized new-* / special-folders-* samples); browse GitHub to match your surface area.
When you run create --template=<slug>, Extension.js fetches the selected template, generates the project files, and can install dependencies automatically.
Find official template sources in the examples repository:
Template folder names map directly to --template=<slug>.