Umbraco Content Management System (CMS) - What is it?
What is Umbraco Content Management System(CMS) and how it works
*Note: Based on Umbraco 13 as of writing this article and .NET 8.0 sdk
There are many different CMS options available and the best one really depends on your own project and situation needs. I have used multiple CMS options and Umbraco is one of the preferred options as it’s not only free, but can also run as an MVC or headless CMS and it also uses the full range of the Microsoft .NET and .NET Core Frameworks using ASP.NET.
What is Umbraco?
In short, Umbraco is a Content Management System (CMS) that allows editors to manage content and control online resources. It is also Open Source which means that it’s a free software to use and it’s constantly updated with a large community behind it.
It is very easy to use for editors to be able to create new pages, content and control publishing items.
On top of that, it is built with Microsoft’s .NET Framework with ASP.NET and the coding is in C#, with the more recent versions of Umbraco using the .NET Core Framework, which allows it to be deployed to multiple environment types and not just windows machines.
This allows developers to create and fully customise the CMS for editors and admins to control the flow of data in and out, as being capable of using it as a headless CMS means that we can create api endpoints that resources can connect to and the Umbraco CMS can also control those api’s using easy to edit user dashboard.
Like I mentioned before, now with the .NET Core framework, the Umbraco service can run on Windows, Mac and Linux operating systems which reduces the limitations of what it previously had as being locked into only windows machines, you can even run it in a containerized docker environment.
Why use Umbraco?
Umbraco is very customisable and scalable, so you can edit and update the existing ecosystem or just build ontop of it, create your own elements and content types, data structures, control api endpoints and access.
For developers you can even integrate frontend frameworks into the solution, such as Vue.js or React and load them into the MVC pages quite easily. With the latest updates and newest version of .NET, it’s simplified the code required to run and build resources. The setup and initial install is quite intuitive compared to previous versions and when connecting to the editor dashboards via mobile devices, the UI is optimized for various devices making it easy for the editors to review and edit their content for publishing.
There are also a large range of resources and training materials to get up and running as well as guides for each step of the way to configure your project to the way you want it to run.
If you want to have a fully headless CMS that controls content delivery via api’s you can do that. If you want to have a website running and the CMS serves the pages and content, you can do that too. If you want a hybrid between the both options, that is also an option, it’s a very flexible CMS that many companies are using with quite alot of integrations.
It is optimized to run with the Microsoft ecosystem, such as within Microsoft Azure, and the documentation does focus on configuration within Azure, however it is customisable for your needs and they also offer their own cloud hosting service if you choose.
Learning Umbraco
If you are wanting to get started with Umbraco, you can find some good resources on the official website and knowledge base:
They have a large range of video guides and tutorials, as well as detailed documentation on setting up based on your needs.
If you’re looking at the full CMS, you can also choose the version of documentation that you need here:
Pros:
There are quite alot of positives with using Umbraco that I do like:
Microsoft .NET framework which is robust and has good security API’s
Simple and intuitive dashboard
Easily customisable
Scalable
Can run as full fledged CMS, headless or hybrid
Good documentation
Open source and free
Many community and approved packages, extensions and plugins available
Cons:
Even though there are quite alot of positives, there are always going to be some things that could be a little bit better:
Very focused on Microsoft ecosystem still
Not very detailed documentation to setup on non Microsoft systems
Requires Microsoft SQL Server or SQLite database to run
Cost to run the application on a server, the recommended hosting (Azure) can cost quite a bit
Knowledge of C# is required
Integrating frontend frameworks can be a challenge to get started
Conclusion:
Overall, I think that Umbraco CMS is a very robust and supported CMS. It allows for very specific customisability and if you know or are willing to learn C#, it is a very powerful resource that you can integrate with various services.
If you want to run it outside of the Microsoft ecosystem then it will be cheaper for you, however it does take a fair bit of learning to configure and deploy to other services as the official documentation does not have very details information all resources and how to properly configure each environment apart from the recommended ones.
Umbraco CMS is great if you are a developer and have experience in C# where you can customise the experience for editors as needed. And as I mentioned earlier, it’s good for it’s scalability, customisability and it’s easy to use and intuitive dashboard for content editors.
If you have no developer experience or developers to assist in building content, then this may not be the most suitable option for your needs.