Get Started with the Web Extensibility API

Last modified: November 7, 2025

Introduction

Studio Pro extensions can be developed using TypeScript and use standard web development technologies to extend the Studio Pro development environment. This document describes how to set up a basic development environment for building an extension using the web extensibility API.

For more information see the Mendix Studio Pro Web Extensibility API.

Prerequisites

You will need the following prerequisites:

Creating Your First Extension

This section will show you how to build and test an extension.

Create a Test App

  1. Create a new app using the Blank Web App template.
  2. Install the Studio Pro Web Extension Template from GitHub using the instructions in the repository.

Building the Extension

Follow the below steps from within Visual Studio Code.

  1. Select File > Open Folder.
  2. Navigate to the folder where you created your extension.
  3. Click Select Folder.
  4. Select Yes if you are asked whether you trust this folder.
  5. Open a Terminal from the top menu by clicking Terminal > New Terminal.
  6. From the Terminal, type npm install. This installs all dependencies for the extension.
  7. Build your extension using the command npm run build in the terminal.

Once completed, you should now have a build artifact which we can deploy to your Mendix app.

Exploring the Created Extension

You can explore the extension to understand what it does when it is installed. Do the following:

  1. From the Explorer window, navigate to src/main/index.ts and select it to open the file.

    Reading through the source code you should see the following:

    a. Line 7 adds a menu

    await studioPro.ui.extensionsMenu.add({
    menuId: "myextension.MainMenu",
    caption: "MyExtension Menu",
    subMenus: [{ menuId: "myextension.ShowTabMenuItem", caption: "Show tab" }],
    });
    1. Line 14 opens a tab
     ```typescript
     // Open a tab when the menu item is clicked
     studioPro.ui.extensionsMenu.addEventListener("menuItemActivated", (args) => {
       if (args.menuId === "myextension.ShowTabMenuItem") {
         studioPro.ui.tabs.open(
           {
             title: "My Extension Tab",
           },
           {
             componentName: "extension/myextension",
             uiEntrypoint: "tab",
           }
         );
       }
     });
       ```
    

When you install the extension, you will see a new menu item within Studio Pro.

Testing the Extension

To test the extension, do the following in File Explorer.

  1. Navigate to the folder where you extracted the extension source code.

  2. Open the dist folder.

  3. Copy the myextension folder.

  4. Navigate to the folder where you created your app.

  5. Create a new folder called webextensions.

  6. Paste the myextension folder into the webextensions folder you just created. This adds the extension files to the app.

  7. Start Studio Pro with the following command-line parameters to tell it to use the extensions in the folder:

    --enable-extension-development --webview-remote-debugging

    These flags instruct Studio Pro to do the following:

    • Load extensions from the webextensions folder
    • Enable web debugging tools
  8. In Studio Pro, open the new app. You will see a new Extensions item in the top menu.

Extensibility Feedback

If you would like to provide additional feedback, you can complete a small survey.

Any feedback is appreciated.