
Umbraco Controllers
This teaches Claude how to work with Umbraco's controller pattern for backoffice customization. Controllers are separate classes that handle logic and lifecycle management for UI elements, things like timers, subscriptions, API calls, and cleanup. The skill includes a workflow that fetches live docs first, then generates TypeScript code extending UmbControllerBase with proper lifecycle methods. Examples cover timer controllers, manual registration, and context access. The practical bit is it shows how to manage side effects cleanly when elements connect and disconnect from the DOM. One thing to note: it explicitly warns against using raw fetch for API calls, pushing you toward generated OpenAPI clients with Umbraco's auth context instead.
- skills.sh installs
- 418
- GitHub stars
- 27
- last updated
- Aug 21, 2026
Install
$ npx -y skills add umbraco/umbraco-cms-backoffice-skills --skill umbraco-controllers --agent claude-codeInstalls into .claude/skills of the current project.
Files
Umbraco Controllers
What is it?
Controllers are separate classes that contain or reuse logic across elements while maintaining connection to an element's lifecycle. A Controller is assigned to a Host Element and supports lifecycle methods (hostConnected, hostDisconnected, destroy) for managing side effects, timers, subscriptions, and cleanup. Controllers can host other controllers, enabling composition and reuse of functionality.
Documentation
Always fetch the latest docs before implementing:
- Main docs: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/umbraco-controller
- Write Custom Controller: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation/umbraco-controller/write-your-own-controller
- Foundation: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
Workflow
- Fetch docs - Use WebFetch on the URLs above
- Ask questions - Need custom controller? What lifecycle events? What cleanup needed?
- Generate code - Implement controller extending UmbControllerBase based on latest docs
Sponsors
Details
- Repository
- github.com/umbraco/umbraco-cms-backoffice-skills
- Category
- .NET & C#
- First seen
- Jun 3, 2026
More from umbraco/umbraco-cms-backoffice-skills
All 76- Umbraco Dashboard418
- Umbraco Extension Template413
- Umbraco Quickstart406
- Umbraco Openapi Client405
- Umbraco Property Editor Ui405
- Umbraco Extension Registry403
- Umbraco Notifications403
- Umbraco Add Extension Reference402
- Umbraco Context Api402
- Umbraco Routing401
- Umbraco Entity Create Option Action400
- Umbraco Menu Items400
- Umbraco Mfa Login Provider400
- Umbraco Repository Pattern400
- Umbraco Auth Provider399
- Umbraco Dynamic Root399
- Umbraco Collection View398
- Umbraco Entity Bulk Actions398
- Umbraco Localization398
- Umbraco Modals398
- Umbraco Entry Point397
- Umbraco Granular User Permissions397
- Umbraco Header Apps397
- Umbraco Health Check397