Skip to main content
Choose the right language and UI framework strategy for your extension surfaces, then use Extension.js defaults to keep setup minimal.

Choose by goal

Suggested progression

  1. Choose language/runtime (TypeScript, React, Preact, Vue, or Svelte).
  2. Choose styling model (CSS Modules, Sass, or Less).
  3. Add build/runtime constraints (Node APIs, WebAssembly) only when needed.
JSX pages compile for the framework the project installs: React, Preact, Vue (through vue/jsx-runtime), and Solid (through a shipped adapter over solid-js/h, so no Babel preset is needed). Svelte components are not JSX and keep compiling through svelte-loader. The parser follows the file extension: .tsx and .jsx files parse JSX, and a .ts file never does.

Next steps