Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
umbraco avatar

Umbraco Extension Template

  • 306 installs
  • 26 repo stars
  • Updated August 1, 2026
  • umbraco/umbraco-cms-backoffice-skills

umbraco-extension-template is an Umbraco CMS skill that scaffolds official .NET backoffice extensions with TypeScript, Vite tooling, and the prescribed folder structure so developers start every extension from the suppor

About

umbraco-extension-template is version 1.0.0 in umbraco-cms-backoffice-skills and scaffolds Umbraco backoffice extensions using the official dotnet template. The skill fetches current Umbraco docs, generates a pre-configured project with TypeScript and Vite, and lays out essential extension files so teams skip manual boilerplate. Developers reach for umbraco-extension-template when adding custom backoffice UI to Umbraco CMS—dashboards, property editors, or workspace plugins—rather than hand-rolling webpack or folder conventions. Allowed tools include Read, Write, Edit, WebFetch, and Bash, enabling end-to-end template installation and project wiring in Claude Code sessions.

  • umbraco-extension-template
  • AI & Agent Building
  • AI-coding skill

Umbraco Extension Template by the numbers

  • 306 all-time installs (skills.sh)
  • +13 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #2,272 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-extension-template

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs306
repo stars26
Last updatedAugust 1, 2026
Repositoryumbraco/umbraco-cms-backoffice-skills

How do you scaffold an Umbraco backoffice extension?

Helps with ai & agent building tasks.

Who is it for?

.NET and TypeScript developers extending Umbraco CMS backoffice UI who want the official template instead of custom scaffolding.

Skip if: Teams building headless frontends only or greenfield apps without Umbraco CMS backoffice integration requirements.

When should I use this skill?

A developer asks to create a new Umbraco backoffice extension, property editor, or dashboard using the official template.

What you get

dotnet template project, TypeScript/Vite extension sources, Umbraco folder layout, and wired backoffice entry files.

  • extension project scaffold
  • vite config
  • backoffice entry files

By the numbers

  • Ships as version 1.0.0 in umbraco-cms-backoffice-skills
  • Allows five agent tools: Read, Write, Edit, WebFetch, and Bash

Files

SKILL.mdMarkdownGitHub ↗

Umbraco Extension Template

What is it?

The Umbraco Extension Template is the official .NET template for creating backoffice extensions. It provides a pre-configured project structure with TypeScript/Vite tooling, proper folder structure, and all essential files needed for extension development. Every Umbraco backoffice extension should start with this template.

Documentation

Always fetch the latest docs before implementing:

  • Main docs: https://docs.umbraco.com/umbraco-cms/customizing/development-flow/umbraco-extension-template
  • Development Flow: https://docs.umbraco.com/umbraco-cms/customizing/development-flow
  • Foundation: https://docs.umbraco.com/umbraco-cms/customizing/foundation

Prerequisites

  • .NET SDK 9.0 or later
  • Node.js 22 or later

Workflow

1. Install template (one-time): dotnet new install Umbraco.Templates 2. Create extension: dotnet new umbraco-extension -n MyExtension 3. Install dependencies: cd MyExtension/Client && npm install 4. Start development: npm run watch 5. Build for production: npm run build

Commands

Install the Template

dotnet new install Umbraco.Templates

Create New Extension (Basic)

dotnet new umbraco-extension -n MyExtension

Create New Extension (With Examples)

dotnet new umbraco-extension -n MyExtension -ex

The -ex flag adds example code including:

  • Sample API controller
  • Swagger API registration
  • Example dashboard component
  • Generated API client

Project Structure

Basic Template

MyExtension/
├── MyExtension.csproj        # .NET project file
├── Constants.cs              # Extension constants
├── README.md                 # Setup instructions
└── Client/                   # TypeScript source
    ├── package.json
    ├── tsconfig.json
    ├── vite.config.ts
    └── src/
        └── ...               # Your extension code

With Examples (-ex flag)

MyExtension/
├── MyExtension.csproj
├── Constants.cs
├── README.md
├── Composers/                # C# composers
│   └── SwaggerComposer.cs    # API documentation setup
├── Controllers/              # C# API controllers
│   └── MyExtensionController.cs
└── Client/
    ├── package.json
    ├── tsconfig.json
    ├── vite.config.ts
    └── src/
        ├── api/              # Generated API client
        ├── dashboards/       # Example dashboard
        └── entrypoints/      # Extension entry point

Development Commands

# Navigate to Client folder
cd MyExtension/Client

# Install dependencies
npm install

# Development with hot reload
npm run watch

# Production build
npm run build

# Type checking
npm run check

Build and Deploy

Publish the Extension

dotnet publish --configuration Release

Create NuGet Package

dotnet pack --configuration Release

Minimal Example

After running the template, add your first manifest in Client/src/:

manifest.ts

export const manifests: Array<UmbExtensionManifest> = [
  {
    name: "My Extension Entrypoint",
    alias: "MyExtension.Entrypoint",
    type: "backofficeEntryPoint",
    js: () => import("./entrypoint.js"),
  },
];

entrypoint.ts

import type { UmbEntryPointOnInit } from "@umbraco-cms/backoffice/extension-api";

export const onInit: UmbEntryPointOnInit = (_host, _extensionRegistry) => {
  console.log("Extension loaded!");
};

IMPORTANT: Add Extension to Umbraco Instance

After creating a new extension, you MUST add it as a project reference to the main Umbraco instance. Without this step, the extension will not load.

Reference skill: `umbraco-add-extension-reference`

This skill explains how to add the new extension's .csproj file as a <ProjectReference> in the main Umbraco project (e.g., Umbraco-CMS.Skills.csproj).

Related Skills

After creating your extension, use these skills to add functionality:

  • Sections: Reference skill: umbraco-sections
  • Dashboards: Reference skill: umbraco-dashboard
  • Menus: Reference skill: umbraco-menu
  • Workspaces: Reference skill: umbraco-workspace
  • Trees: Reference skill: umbraco-tree

For complete extension blueprints with working examples:

  • Reference skill: umbraco-backoffice

That's it! Always fetch fresh docs, use the template to scaffold, add the project reference, then add extension types as needed.

Related skills

FAQ

What does umbraco-extension-template generate?

umbraco-extension-template generates a new Umbraco backoffice extension using the official .NET template with TypeScript, Vite tooling, and the required folder structure. Version 1.0.0 targets managed Umbraco CMS extension projects.

Which tools does umbraco-extension-template use?

umbraco-extension-template allows Read, Write, Edit, WebFetch, and Bash so agents can fetch Umbraco docs, run dotnet template commands, and edit generated extension files in one workflow.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.