Umbraco CMS: install the template, not the source tree
Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
At a glance
- What is it?
- Umbraco CMS ships as a dotnet template rather than as a repository you run. Three release lines publish in parallel, the example environment file disables TLS verification, and the project tells you to extend an installed copy instead of the source.
- Who is it for?
- Pick Umbraco when the editing experience needs to be your own and you can commit to one major version for a while, since 17.x and 18.x received releases on the same day and 19.0 is in beta. Skip it if you need the repository itself to run.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- umbraco/Umbraco-CMS5,286 ★ · +31
| Repository | 2026-09-23 | 2026-11-14 |
|---|---|---|
| umbraco/Umbraco-CMS | 5.3k | 5.3k |
31 Stars in the last 52 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The documented install is four dotnet commands
The first-run path is a dotnet template, not the GitHub tree. On Windows, Linux and MacOS, once the .NET Runtime and SDK are installed, four commands produce a running site:
dotnet new install Umbraco.Templates
dotnet new umbraco --name MyProject
cd MyProject
dotnet run`dotnet new install` registers the template package once per machine. `dotnet new umbraco --name MyProject` writes a project directory named after the flag, and `dotnet run` starts it. Notice what the sequence does not contain: no clone, no build command, no database step. The CMS arrives as generated output from a template package on nuget.org, which is why the repository itself is never part of the install.
A cloned repo is a solution to compile, not a site to launch
The top level holds `umbraco.sln`, `umbraco.sln.DotSettings`, `Directory.Build.props`, `Directory.Packages.props`, `global.json`, `version.json` and `nuget.config`, next to `src/`, `templates/`, `tests/`, `tools/` and `build/`. Central package versions sit in `Directory.Packages.props` and the SDK pin in `global.json`, which is how a codebase this size keeps builds from drifting apart. Analyzer and style rules live in `.globalconfig` and `.editorconfig`, and there is a `.devcontainer/` for editor environments. The consequence for a reader is blunt: a clone gives you something to compile, not something to run and edit.
Three release lines shipped inside four days
Version 18.3.0 and version 17.8.0 were both published on 2026-10-29, and 19.0.0-beta1 landed on 2026-10-28. That pattern is the practical signal for anyone choosing a version. A site on 17.x still receives releases alongside the 18.x line while 19.0 is in beta, so an existing installation is not forced to a major upgrade to get work. The default branch, main, was pushed to on 2026-11-02. Which line you pick decides which template your `dotnet new` produces and how long your next upgrade is.
The example environment file turns off certificate checks
The repository ships a `.env.example` worth reading before copying anything out of it:
UMBRACO_CLIENT_ID=umbraco-back-office-mcp
UMBRACO_CLIENT_SECRET=1234567890
UMBRACO_BASE_URL=https://localhost:44339
NODE_TLS_REJECT_UNAUTHORIZED=0
UMBRACO_INCLUDE_TOOL_COLLECTIONS=data-type,document-type,document,media-type,media`NODE_TLS_REJECT_UNAUTHORIZED=0` stops the process from verifying TLS certificates. It sits next to a localhost base URL on port 44339, so it reads as a development setting, and it is a bad default anywhere a real client talks to a real host. `UMBRACO_CLIENT_SECRET=1234567890` is a placeholder that must never reach a deployment. The last line also shows how the back-office surface is named: tool collections are scoped by identifier, so trimming that list is how a client is narrowed.
The tooling story repeats in the file names at the root: `.mcp.json`, `MCP.md`, `CLAUDE.md`, a `.claude/` directory and `context7.json` sit beside `.vscode/` and `Umbraco.Client.code-workspace`. The client identifier above, umbraco-back-office-mcp, matches that set, so these variables are not a generic .NET sample but the settings for a client pointed at a running Umbraco host. `LICENSE.md` and `NOTICES.txt` ship alongside, so the licence text travels with the tree.
The backoffice preview runs on mock data and drops your edits
The preview at backofficepreview.umbraco.com is deployed automatically from the main branch, so it shows whatever is on that branch rather than any tagged release. It runs from mock data and persistent edits are not supported. Two consequences follow. You cannot use it to reproduce a content problem, because anything you save is discarded. And it runs ahead of what you can install, so an interface detail visible there may be absent from the version behind your own install. Read it as a look at where the backoffice is heading, not as a reference for the version in front of you.
Setup facts live in the docs, breakage lives in the forum
Four places carry the answers, and they cover different ground. The documentation at docs.umbraco.com walks from the fundamentals upward, with an install page, a getting to know Umbraco page, and tutorials for creating a basic website and customizing the editing experience. Discord is described as the social space for Umbracians, and forum.umbraco.com is where a question about a problem goes. For a reader the practical split is this: the install page is what you trust for setup steps, the forum is where version specific breakage gets discussed. None of it replaces the requirements page, since every template command assumes the .NET Runtime and SDK are already on the machine.
You are told not to run the thing in this repository
The sharpest line in the README is a warning against using the source directly: you should not run Umbraco from the source code found here, because the CMS is extremely extensible and the intended path is to install it and then extend it any way you want, with an extending guide in the docs. Extensibility is the product strategy, and it cuts both ways for anyone evaluating it. It keeps the base install small and leaves the shape of your project to you, which is a genuine reason to choose it over a fixed system. It also means the out-of-the-box experience says little about what a real implementation costs, because the work happens in packages you add afterwards. Code contributions go through the contributing guide, not through the template.
Editorial conclusion
Pick Umbraco when the editing experience needs to be your own and you can commit to one major version for a while, since 17.x and 18.x received releases on the same day and 19.0 is in beta. Skip it if you need the repository itself to run. Before starting, read the requirements page for the .NET SDK, and do not carry the example environment file into a deployment: it disables TLS verification and holds a placeholder client secret.
Frequently asked questions
What is Umbraco CMS?
Umbraco is a free and open source .NET content management system, written in C#, whose stated mission is to help you deliver digital experiences while keeping the CMS friendly, simpler and social. You install it from a dotnet template rather than from the repository.
Is Umbraco CMS free?
It is described as free and open source, and the repository carries an MIT LICENSE.md at its root. The software itself has no licence fee; what you spend is hosting, database and development time.
Is Umbraco CMS open source?
It is published under the MIT licence in this public repository, which also states that the project is contribution focused and community driven, with a contributing guide, an issue tracker for bug reports and discussions for feature requests.
How do I use Umbraco CMS to get a running site?
Run dotnet new install Umbraco.Templates once, then dotnet new umbraco --name MyProject, cd MyProject and dotnet run. The sequence works on Windows, Linux and MacOS, and it expects the .NET Runtime and SDK to be installed already.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/umbraco-umbraco-cms)Star history chart for your README
[](https://hysenlabs.com/projects/umbraco-umbraco-cms)Was this useful?