How to choose the best Umbraco products and modern technical approaches for your clients

tagged with .NET Core Accessibility Azure Backend Backoffice Configuration Content Developer Frontend GraphQL Headless MVC Security Umbraco Cloud v10

Different clients have different requirements, and determining the best Umbraco solutions and architectural approaches can necessitate extensive research and learning. In this post, I will share my experience with these various options for different Umbraco products, namely Umbraco Heartcore, Umbraco Cloud, and Umbraco CMS, as well as how to use them efficiently for different clients, in the hopes that you will be able to choose the right products for your clients.

As a Technical Architect, I work with many different types of clients who have different requirements.

Some clients would like to go for full SaaS options (Umbraco Heartcore), some would like to simply move to a "semi" SaaS offering of Umbraco (Umbraco Cloud), some would like to continue with the Coupled Umbraco CMS option but to push some of the responsibilities as much as possible to some 3rd party systems like Azure Cloud, and part of my job is to give them the best solutions that they want and need.

There are generally two key high-level architectural approaches: Headless and more traditional monolithic and Umbraco has multiple products to address these different approaches. 

Umbraco Heartcore

Umbraco Heartcore is the headless SaaS CMS offering of Umbraco. It comes without a presentation layer and you are 100% free to choose how to implement your presentation layer. Quite a lot of agencies prefer to develop the Front-end website with a powerful front-end JavaScript framework, e.g. Vue, Nuxt, Svelte, React or NextJS.

I expect to see more and more Umbraco Heartcore projects in the coming years as SaaS remains the largest public cloud services market segment, forecasted to reach $176.6 billion in end-user spending in 2022 and it is expected that steady velocity within this segment as enterprises take multiple routes to market with SaaS will continue to break up larger, monolithic applications into composable parts for more efficient processes.

Advantages

  • A headless, not monolith, API-first, hosted, proprietary SaaS CMS offering with a web app for creating and publishing content.
  • It doesn’t require infrastructure setup, configuration, or maintenance.
    • Teams can start building a project immediately.
    • The Umbraco team maintains its own “cloud” content infrastructure.
  • It is built on top of Umbraco CMS which powers over 500.000 websites worldwide.
  • Fully serviced back office
    • Umbraco Heartcore is automatically kept up to date. This assures that you are always on the latest and most secure version of Heartcore.
    • You do not have to spend time on patches and security fixes.
  • Its infrastructure is powered by Azure and Cloudflare powers the content delivery network – CDN. With CDN:
    • Content can be presented faster.
    • This also means, without you having to do anything, your content can be:
      • Located in multiple datacentres in the world
      • Replicated in multiple data centres
      • Located in a centre near you
      • Distributed locally
  • Hosting and CDN are included to provide you with a secure place for your content that guarantees low latency when displayed worldwide.
  • The Azure Data Center that Umbraco Heartcore data is hosted is currently based in the West Europe region under EU data privacy guidelines.
    • Umbraco Heartcore is the CMS website.
  • With its RESTful API, Umbraco Heartcore is the centre for any content you need to make available to your front-end – which could be anything, like apps, smart watches, screens, smart speakers etc.
  • GraphQL and Preview API are included to ensure high performance in your solution and give your editors a greater experience.
  • The API layer is managed by Umbraco, so you do not worry about maintaining the codebase for the API.
  • Easy and intuitive to use and flexible editing experience. 
  • It can be used as Content as a Service in a microservices architecture and it is pretty powerful.
  • Webhooks makes it possible to easily integrate the content inside your headless solution to push those changes to other systems.
    • You push instead of pulling your data – this means reduced data usage.
  • With user roles, you can control who has access to what in a project.
    • The first user role has access to everything, but with extra user roles and granular permissions, you can control exactly which type of access you want to give all other users.
    • This way, you can set up permissions so that users with a new role can only edit and save content and some other users can publish the changes.
  • With Professional and Enterprise plans, you get full support straight from Umbraco.
    • As an Umbraco Enterprise customer, you get the highest priority and attention and the ability to escalate an issue based on the level of its severity.
  • Umbraco Forms comes free with Umbraco Heartcore.

Disadvantages

  • Custom code is not available as this is purely a CMS repo. However, you can use the Heartcore API to create your custom code. Umbraco continues to improve the Heartcore API to enable custom code creation easier outside of Heartcore. 
  • Integration with Azure AD or another identity provider is not possible on Umbraco Cloud platforms, but Umbraco HQ are working on this.
  • All services currently run in the Azure West Europe region, and you cannot choose a different region.
  • You do not have complete control of the project's security, performance and costs.

Pricing

Umbraco Cloud

Umbraco Cloud is the semi-SaaS (Software as a Service) offering of Umbraco with an ASP.NET MVC front-end website that needs to be implemented by the Developers.

Advantages

  • This is the all-in-one managed Umbraco CMS solution.
    • Everything is installed, configured and ready for development.
  • Umbraco Cloud core features are the same as Umbraco CMS and the purpose of Umbraco Cloud is to save you time when developing the code changes.
  • Umbraco Cloud Professional and Umbraco Cloud Enterprise options are available for business-critical, high-traffic sites.
    • According to Umbraco, they have benchmarked a “well-built” site with approximately 50.000 unique visitors per day (~5 million per month) that performs very well.
  • With automatic patch upgrades, one-click updates of new features and easy team and user management, Umbraco Cloud makes creating, building, hosting, and maintaining your Umbraco projects much easier.
    • With quick access to local development, multiple environment support and one-click deployments, you can spare more time on developing the features for your application.
  • It has a powerful API layer, and it is extensible.
  • Hosting includes 24-7 monitoring and DDoS protection.
  • Umbraco Forms and Umbraco Deploy are pre-installed on all projects at no extra cost.
    • Umbraco Forms needs to be purchased seperately for normal Umbraco CMS projects.
    • Umbraco Deploy On-Premises Standard price for normal Umbraco CMS projects is a £7000 one-time fee + £700/Year subscription.
  • Umbraco looks after the Umbraco Cloud security.
  • Automatic upgrades for the latest patch version of Umbraco CMS, Umbraco Forms and Umbraco Deploy/Courier.
  • For minor version upgrades, you will get a button in the interface to decide whether you want to move to that version when it is released.
    • When Umbraco makes a new patch version, they first run it through their test suite, then test it on 10 test sites.
    • When all tests are passed, then they roll out the upgrade in batches of 100 to customer accounts.
  • All Umbraco Cloud plans are hosted on Microsoft Azure, which gives your site a proven and solid foundation.
    • By using Umbraco Cloud, you no longer have to worry about managing the hosting infrastructure.
    • Umbraco actively monitor the service at all times (24/7), your website is on 3 redundant disks and they use Premium Storage, so all information is on SSD-disks, which increases performance.
  • All available Umbraco Cloud plans are utilising P1V3 Azure App Service Plans as their underlying infrastructure. This plan offers in total
    • 2 CPU Cores
    • 8 GB of RAM
    • 250 GB Disk space
    • 1920 TCP connections.
  • Umbraco Cloud uses Cloudflare for DNS.
  • Umbraco Cloud provides automatic TLS (HTTPS) certificates for all hostnames added to an Umbraco Cloud Project’s environment.
    • Umbraco Cloud will automatically renew the certificates, which are issued by Cloudflare.
    • By default, the certificates are valid for 1 year and are then automatically renewed for as long as the hostname is active on Umbraco Cloud.
    • It also supports custom certificates with Professional and Enterprise Plans.
    • Valid wildcard certificates can be used on Umbraco Cloud.
  • By default, Umbraco Cloud supports HTTP/2.
  • IP filtering is available to control who accesses the Umbraco Cloud backoffice.
  • Custom code can be added to the Umbraco Cloud projects.
  • Websockets are enabled on all sites.
  • You can add more environments with a single click without any setup needed.
    • With multiple environments, you’ll be able to take advantage of the Umbraco Deploy core technology, which uses a two-part deployment approach.
    • This deployment approach splits meta data (Document types, templates, etc.) and content (Content nodes and Media), so they are separate parts.
  • Umbraco packages that are supported by Umbraco Cloud are marked as “Works on Umbraco Cloud.”
    • Most existing packages work on Umbraco Cloud.
    • This helps to use the supported Umbraco packages only.
  • Database backups are not available as downloads by default, but a copy can be downloaded using a Powershell script.
    • By default, 35 days point in time restore is available. Umbraco Cloud Support could be used for database restores.
  • Umbraco Cloud keeps 30 days of snapshots of filesystem for disaster recovery purposes.
  • Umbraco Cloud keeps 35 days of snapshots of the Blob Storage container for disaster recovery purposes.

Disadvantages

  • All services currently run in Azure West Europe or East US region.
  • Limitation for hostnames on different plans on Umbraco Cloud, starting from 10 to more than 100.
  • Auto-scale is not currently available, but Umbraco Developers are currently working on this.
  • Load-balanced Umbraco Cloud back office is not available.
    • Currently, Umbraco doesn’t support Load balancing for any of the Umbraco back-office websites. This is due to its caching structure.
    • There is no problem with load-balancing front-end (Umbraco) websites.
  • Every time a Umbraco Cloud update occurs, any files that come with Umbraco by default are overwritten.
    • Umbraco recommends having an ApplicationEventHandler in which you check if the file is different from your customized file and overwrite it again.
  • It is strictly forbidden to attempt to do a Denial of Service (DoS) attack on Umbraco Cloud sites. For Load Testing, Umbraco would like you to contact them beforehand.

Pricing

Coupled Umbraco CMS

Coupled Umbraco CMS is the free Umbraco CMS offering. The latest version is v11 and it is built on the latest .NET 7 technology. Umbraco Forms need to be purchased.

I recommend Microsoft Azure for your Umbraco CMS projects. Azure is a cloud computing service operated by Microsoft for application management via Microsoft-managed data centres. It provides SaaS, PaaS, and IaaS options.

For the “Coupled Umbraco CMS on Azure Cloud” option, I recommend moving away from Infrastructure as a Service (IaaS) solutions to Platform as a Service (PaaS) solutions, e.g. stopping using VMs and starting using Azure App Services etc.

Advantages

  • A flexible platform that allows you to structure your projects based on your needs.
  • Fully extensible so that you can always create customised solutions for your projects.
    • This is especially important when integrating it with other tools.
    • This includes creating custom property editors to create or update content.
  • Starting from v9, Umbraco runs on Microsoft’s latest .NET framework using ASP.NET. The latest Umbraco version is running on .NET 7 and it comes with a lot of security features and performance improvements.
  • Umbraco CMS releases are aligned with the LTS releases of Microsoft.NET and we know exactly when we will have a new Umbraco release; there is a new minor release every 6 weeks and a new major release every 6 months.
    • This should help everyone with planning the upgrades.

Disadvantages

  • This is not a SaaS offering.
  • All upgrades need to be done by Developers.

Pricing

  • Umbraco CMS is free.

Final notes

Traditional "coupled" Umbraco CMS solutions could work for a lot of clients, but as things continue to move towards SaaS and it is more important than ever to quickly deliver value to your clients and your business, you should definitely consider the Umbraco Heartcore and Umbraco Cloud options.


Tech Tip: JetBrains Rider

Check it out here