Sad Tux - Windows bias detected
This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Detected Bias Types
windows_first
powershell_heavy
windows_tools
missing_linux_example
Summary
The documentation exhibits Windows bias in several ways: Windows tools and terminology (Command Prompt, PowerShell) are mentioned first and explicitly, while Linux equivalents are not described or are only implied. There are no explicit Linux shell examples or instructions for Linux-specific environments. The Azure CLI example is presented generically, but the context and instructions assume a Windows environment. The documentation lacks parity in step-by-step guidance for Linux users, such as using Bash or Linux-specific file paths and shell commands.
Recommendations
  • Explicitly mention Linux and macOS as supported environments in prerequisites and steps.
  • Provide Linux/Bash shell examples alongside Windows Command Prompt/PowerShell instructions.
  • Use neutral terminology such as 'terminal' or 'command shell' instead of 'Windows Command Prompt, PowerShell'.
  • Include notes or examples for Linux-specific Azure CLI installation and usage.
  • Add troubleshooting tips for common Linux/macOS issues (e.g., permissions, path separators).
  • Ensure all file paths and commands are cross-platform or provide platform-specific variants.
GitHub Create Pull Request

Scan History

Date Scan Status Result
2026-01-12 00:00 #99 completed Biased Biased
2026-01-11 06:20 #98 completed Biased Biased
2026-01-11 00:00 #95 cancelled Clean Clean
2026-01-10 00:00 #92 completed Clean Clean
2026-01-09 00:00 #87 cancelled Clean Clean
2026-01-08 00:00 #84 in_progress Clean Clean
2026-01-06 22:28 #78 completed Clean Clean
2025-12-29 18:00 #48 cancelled Clean Clean
2025-12-22 00:00 #24 cancelled Biased Biased
2025-12-15 00:00 #7 completed Clean Clean
2025-12-14 05:05 #6 completed Clean Clean

Flagged Code Snippets

Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
1. Confirm the configuration of `subscriptionId`, `resourceGroupName` and `serviceName`, which are needed to connect to your API Management service using Azure Resource Manager APIs.


## Publish portal in pipelines (GitHub Actions)

You can publish the self-hosted portal in a pipeline such as GitHub Actions.

The pipeline also needs Entra ID application credentials to execute publishing using pipelines. You can use the same Entra ID application described in the previous steps. The `tenantId`, `clientId`, and especially `clientSecret` must be kept in respective key storage. See [Using secrets in GitHub Actions](https://docs.github.com/en/actions/security-guides/encrypted-secrets) for more details.

Example of GitHub Actions pipeline YAML:

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Substitute `< service name >` with the name of your API Management instance used in the previous configuration files. 


### Configure the static website

Configure the **Static website** feature in your storage account by providing routes to the index and error pages:

1. In the Azure portal, go to your storage account in the Azure portal.

1. In the sidebar menu, select **Data management** > **Static website**.

1. On the **Static website** page, select **Enabled**.

1. In the **Index document name** field, enter *index.html*.

1. In the **Error document path** field, enter *404/index.html*.

1. Select **Save**.

Take note of the **Primary endpoint** URL. You'll configure it later to access your self-hosted portal.


### Configure CORS settings for storage account

To configure the cross-origin resource sharing (CORS) settings for the storage account:

1. Go to your storage account in the Azure portal.

1. From the sidebar menu, under **Settings**, select **Resource sharing (CORS)**.

1. In the **Blob service** tab, configure the following rules:

    | Rule | Value |
    | ---- | ----- |
    | Allowed origins | * |
    | Allowed methods | Select all the HTTP verbs. |
    | Allowed headers | * |
    | Exposed headers | * |
    | Max age | 0 |

1. Select **Save**.


### Configure CORS settings for developer portal backend

Configure CORS settings for the developer portal backend to allow requests originating through your self-hosted developer portal. The self-hosted developer portal relies on the developer portal's backend endpoint (set in `backendUrl` in the portal `config.runtime.json` file) to enable several features, including: 

* CAPTCHA verification
* [OAuth 2.0 authorization](api-management-howto-oauth2.md) in the test console
* [Delegation](api-management-howto-setup-delegation.md) of user authentication and product subscription 

To add CORS settings:

1. Go to your API Management instance in the Azure portal.
1. In the sidebar menu, select **Developer portal** > **Settings**.
1. On the **Self-hosted portal configuration** tab, add one or more **Origin** domain values. For example:
    * The domain where the self-hosted portal is hosted, such as `https://contoso.developer.azure-api.net` 
    * `localhost` for local development (if applicable), such as `http://localhost:8080` or `https://localhost:8080` 
1. Select **Save**.


## Step 3: Run the portal

Now you can build and run a local portal instance in the development mode. In development mode, all the optimizations are turned off and the source maps are turned on.

1. Run the following command:

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Substitute `< service name >` with the name of your API Management instance used in the previous configuration files. 


### Configure the static website

Configure the **Static website** feature in your storage account by providing routes to the index and error pages:

1. In the Azure portal, go to your storage account in the Azure portal.

1. In the sidebar menu, select **Data management** > **Static website**.

1. On the **Static website** page, select **Enabled**.

1. In the **Index document name** field, enter *index.html*.

1. In the **Error document path** field, enter *404/index.html*.

1. Select **Save**.

Take note of the **Primary endpoint** URL. You'll configure it later to access your self-hosted portal.


### Configure CORS settings for storage account

To configure the cross-origin resource sharing (CORS) settings for the storage account:

1. Go to your storage account in the Azure portal.

1. From the sidebar menu, under **Settings**, select **Resource sharing (CORS)**.

1. In the **Blob service** tab, configure the following rules:

    | Rule | Value |
    | ---- | ----- |
    | Allowed origins | * |
    | Allowed methods | Select all the HTTP verbs. |
    | Allowed headers | * |
    | Exposed headers | * |
    | Max age | 0 |

1. Select **Save**.


### Configure CORS settings for developer portal backend

Configure CORS settings for the developer portal backend to allow requests originating through your self-hosted developer portal. The self-hosted developer portal relies on the developer portal's backend endpoint (set in `backendUrl` in the portal `config.runtime.json` file) to enable several features, including: 

* CAPTCHA verification
* [OAuth 2.0 authorization](api-management-howto-oauth2.md) in the test console
* [Delegation](api-management-howto-setup-delegation.md) of user authentication and product subscription 

To add CORS settings:

1. Go to your API Management instance in the Azure portal.
1. In the sidebar menu, select **Developer portal** > **Settings**.
1. On the **Self-hosted portal configuration** tab, add one or more **Origin** domain values. For example:
    * The domain where the self-hosted portal is hosted, such as `https://contoso.developer.azure-api.net` 
    * `localhost` for local development (if applicable), such as `http://localhost:8080` or `https://localhost:8080` 
1. Select **Save**.


## Step 3: Run the portal

Now you can build and run a local portal instance in the development mode. In development mode, all the optimizations are turned off and the source maps are turned on.

1. Run the following command:

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Substitute `< service name >` with the name of your API Management instance used in the previous configuration files. 


### Configure the static website

Configure the **Static website** feature in your storage account by providing routes to the index and error pages:

1. In the Azure portal, go to your storage account in the Azure portal.

1. In the sidebar menu, select **Data management** > **Static website**.

1. On the **Static website** page, select **Enabled**.

1. In the **Index document name** field, enter *index.html*.

1. In the **Error document path** field, enter *404/index.html*.

1. Select **Save**.

Take note of the **Primary endpoint** URL. You'll configure it later to access your self-hosted portal.


### Configure CORS settings for storage account

To configure the cross-origin resource sharing (CORS) settings for the storage account:

1. Go to your storage account in the Azure portal.

1. From the sidebar menu, under **Settings**, select **Resource sharing (CORS)**.

1. In the **Blob service** tab, configure the following rules:

    | Rule | Value |
    | ---- | ----- |
    | Allowed origins | * |
    | Allowed methods | Select all the HTTP verbs. |
    | Allowed headers | * |
    | Exposed headers | * |
    | Max age | 0 |

1. Select **Save**.


### Configure CORS settings for developer portal backend

Configure CORS settings for the developer portal backend to allow requests originating through your self-hosted developer portal. The self-hosted developer portal relies on the developer portal's backend endpoint (set in `backendUrl` in the portal `config.runtime.json` file) to enable several features, including: 

* CAPTCHA verification
* [OAuth 2.0 authorization](api-management-howto-oauth2.md) in the test console
* [Delegation](api-management-howto-setup-delegation.md) of user authentication and product subscription 

To add CORS settings:

1. Go to your API Management instance in the Azure portal.
1. In the sidebar menu, select **Developer portal** > **Settings**.
1. On the **Self-hosted portal configuration** tab, add one or more **Origin** domain values. For example:
    * The domain where the self-hosted portal is hosted, such as `https://contoso.developer.azure-api.net` 
    * `localhost` for local development (if applicable), such as `http://localhost:8080` or `https://localhost:8080` 
1. Select **Save**.


## Step 3: Run the portal

Now you can build and run a local portal instance in the development mode. In development mode, all the optimizations are turned off and the source maps are turned on.

1. Run the following command:

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
## Step 7: Go to your website

Your website is now live under the hostname specified in your Azure Storage properties. In the sidebar menu, go to **Data management** > **Static website**. The hostname is the value of **Primary endpoint**. 

## Host the website editor

When making changes in website code, you may need to update the website editor code as well to be able to properly support editing of your modified widgets. In this case, besides hosting the portal, you may also want to host the editor application. For this, you need to build it and configure to access your API Management service.

For this, you need a Microsoft Entra ID application in your tenant:

1. [Register an application](/entra/identity-platform/quickstart-register-app) in your Microsoft Entra ID tenant. Take note of the **Application (client) ID** and the **Directory (tenant) ID**. You configure them in a later step.
1. Configure a Web **Redirect URI** (reply URL) in this application to point to the endpoint of the web app where the designer is hosted. This is typically the location of the blob storage-based website. Example: `https://<your-storage-account-name>z13.web.core.windows.net/`.
1. If you want to publish the portal in pipelines (GitHub Actions), also create a client secret for this application. Take note of the generated secret value and store it in a safe location.

Then, follow these steps to host the website editor:

1. Add `clientId` and `tenantId` fields to the `config.design.json` file.
    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Substitute `< service name >` with the name of your API Management instance used in the previous configuration files. 


### Configure the static website

Configure the **Static website** feature in your storage account by providing routes to the index and error pages:

1. In the Azure portal, go to your storage account in the Azure portal.

1. In the sidebar menu, select **Data management** > **Static website**.

1. On the **Static website** page, select **Enabled**.

1. In the **Index document name** field, enter *index.html*.

1. In the **Error document path** field, enter *404/index.html*.

1. Select **Save**.

Take note of the **Primary endpoint** URL. You'll configure it later to access your self-hosted portal.


### Configure CORS settings for storage account

To configure the cross-origin resource sharing (CORS) settings for the storage account:

1. Go to your storage account in the Azure portal.

1. From the sidebar menu, under **Settings**, select **Resource sharing (CORS)**.

1. In the **Blob service** tab, configure the following rules:

    | Rule | Value |
    | ---- | ----- |
    | Allowed origins | * |
    | Allowed methods | Select all the HTTP verbs. |
    | Allowed headers | * |
    | Exposed headers | * |
    | Max age | 0 |

1. Select **Save**.


### Configure CORS settings for developer portal backend

Configure CORS settings for the developer portal backend to allow requests originating through your self-hosted developer portal. The self-hosted developer portal relies on the developer portal's backend endpoint (set in `backendUrl` in the portal `config.runtime.json` file) to enable several features, including: 

* CAPTCHA verification
* [OAuth 2.0 authorization](api-management-howto-oauth2.md) in the test console
* [Delegation](api-management-howto-setup-delegation.md) of user authentication and product subscription 

To add CORS settings:

1. Go to your API Management instance in the Azure portal.
1. In the sidebar menu, select **Developer portal** > **Settings**.
1. On the **Self-hosted portal configuration** tab, add one or more **Origin** domain values. For example:
    * The domain where the self-hosted portal is hosted, such as `https://contoso.developer.azure-api.net` 
    * `localhost` for local development (if applicable), such as `http://localhost:8080` or `https://localhost:8080` 
1. Select **Save**.


## Step 3: Run the portal

Now you can build and run a local portal instance in the development mode. In development mode, all the optimizations are turned off and the source maps are turned on.

1. Run the following command:

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Substitute `< service name >` with the name of your API Management instance used in the previous configuration files. 


### Configure the static website

Configure the **Static website** feature in your storage account by providing routes to the index and error pages:

1. In the Azure portal, go to your storage account in the Azure portal.

1. In the sidebar menu, select **Data management** > **Static website**.

1. On the **Static website** page, select **Enabled**.

1. In the **Index document name** field, enter *index.html*.

1. In the **Error document path** field, enter *404/index.html*.

1. Select **Save**.

Take note of the **Primary endpoint** URL. You'll configure it later to access your self-hosted portal.


### Configure CORS settings for storage account

To configure the cross-origin resource sharing (CORS) settings for the storage account:

1. Go to your storage account in the Azure portal.

1. From the sidebar menu, under **Settings**, select **Resource sharing (CORS)**.

1. In the **Blob service** tab, configure the following rules:

    | Rule | Value |
    | ---- | ----- |
    | Allowed origins | * |
    | Allowed methods | Select all the HTTP verbs. |
    | Allowed headers | * |
    | Exposed headers | * |
    | Max age | 0 |

1. Select **Save**.


### Configure CORS settings for developer portal backend

Configure CORS settings for the developer portal backend to allow requests originating through your self-hosted developer portal. The self-hosted developer portal relies on the developer portal's backend endpoint (set in `backendUrl` in the portal `config.runtime.json` file) to enable several features, including: 

* CAPTCHA verification
* [OAuth 2.0 authorization](api-management-howto-oauth2.md) in the test console
* [Delegation](api-management-howto-setup-delegation.md) of user authentication and product subscription 

To add CORS settings:

1. Go to your API Management instance in the Azure portal.
1. In the sidebar menu, select **Developer portal** > **Settings**.
1. On the **Self-hosted portal configuration** tab, add one or more **Origin** domain values. For example:
    * The domain where the self-hosted portal is hosted, such as `https://contoso.developer.azure-api.net` 
    * `localhost` for local development (if applicable), such as `http://localhost:8080` or `https://localhost:8080` 
1. Select **Save**.


## Step 3: Run the portal

Now you can build and run a local portal instance in the development mode. In development mode, all the optimizations are turned off and the source maps are turned on.

1. Run the following command:

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
1. Run the `npm run build-designer` command to build designer.

1. Go to the generated `/dist/designer` folder, which contains a file `config.json` with the following content: 
    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
1. Run the `npm run build-designer` command to build designer.

1. Go to the generated `/dist/designer` folder, which contains a file `config.json` with the following content: 
    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
Copy and paste the `subscriptionId`, `resourceGroupName`, and `serviceName` values from the previous configuration file. 

### config.runtime.json file

Go to the `src` folder and open the `config.runtime.json` file.

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
1. Confirm the configuration of `subscriptionId`, `resourceGroupName` and `serviceName`, which are needed to connect to your API Management service using Azure Resource Manager APIs.


## Publish portal in pipelines (GitHub Actions)

You can publish the self-hosted portal in a pipeline such as GitHub Actions.

The pipeline also needs Entra ID application credentials to execute publishing using pipelines. You can use the same Entra ID application described in the previous steps. The `tenantId`, `clientId`, and especially `clientSecret` must be kept in respective key storage. See [Using secrets in GitHub Actions](https://docs.github.com/en/actions/security-guides/encrypted-secrets) for more details.

Example of GitHub Actions pipeline YAML:

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
1. Confirm the configuration of `subscriptionId`, `resourceGroupName` and `serviceName`, which are needed to connect to your API Management service using Azure Resource Manager APIs.


## Publish portal in pipelines (GitHub Actions)

You can publish the self-hosted portal in a pipeline such as GitHub Actions.

The pipeline also needs Entra ID application credentials to execute publishing using pipelines. You can use the same Entra ID application described in the previous steps. The `tenantId`, `clientId`, and especially `clientSecret` must be kept in respective key storage. See [Using secrets in GitHub Actions](https://docs.github.com/en/actions/security-guides/encrypted-secrets) for more details.

Example of GitHub Actions pipeline YAML:

2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.

    
2. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

3. After some time, the default browser automatically opens with your local developer portal instance. The default address is `http://localhost:8080`, but the port can change if `8080` is already occupied. When you make changes to the codebase of the project, it triggers a rebuild and refreshes your browser window.

## Step 4: Edit through the visual editor

Use the visual editor to carry out these tasks:

- Customize your portal
- Author content
- Organize the structure of the website
- Stylize its appearance

See [Tutorial: Access and customize the developer portal](api-management-howto-developer-portal-customize.md). It covers the basics of the administrative user interface and lists recommended changes to the default content. Save all changes in the local environment, and press **Ctrl+C** to close it.
 

## Step 5: Publish the portal locally

1. Run `npm run publish`. You're prompted to authenticate via your browser. Select your Microsoft credentials to continue.

1. After some time, the content is published to the `dist/website` folder.

## Step 6: Upload static files to a blob

Use the Azure CLI to upload the locally generated static files to a blob, and make sure your visitors can get to them:

1. Open Windows Command Prompt, PowerShell, or other command shell.

1. Run the following `az storage blog upload-batch` command. Replace `<connection-string>` with a connection string for your storage account. You can get it from the **Security + networking** > **Access keys** section of your storage account.