Umbraco vs Orchard Core

Umbraco suits teams that want an editor-friendly back office, a published LTS cadence and optional licensed add-ons. Orchard Core suits teams that need multi-tenancy, GraphQL, database choice and NuGet-based modules inside one .NET deployment.

On this page

Umbraco or Orchard Core: when each one fits

Choose Umbraco when your editors need a mature back office, your team wants a predictable upgrade rhythm tied to LTS releases, and you can accept that some marketing and forms capabilities are licensed add-ons. Choose Orchard Core when you need one deployment to host many isolated sites, want modules distributed as NuGet packages, or want to pick your database from SQL Server, MySQL, MariaDB, PostgreSQL or SQLite. The decision turns on five questions: how your editors work day to day, whether you host one site or many, which database your organization already runs, how often you want to upgrade, and how much you will pay for add-ons over the life of the site.

Umbraco is published under the MIT license, so the core CMS carries no license fee for self-hosting. The advantage matters most when you want a stable, well-documented editing experience and a defined support window: Umbraco 17 is an LTS release with end of life on November 27, 2028, and Umbraco 13 reaches end of life on December 14, 2026, so confirm which line you are standing up before you plan. The cost to weigh is the licensed add-ons. Umbraco Forms requires a valid license on a public domain, sold per domain with one license per installation, and Umbraco Engage requires a license covering one production domain. If your site needs those features, ask for the license terms in writing alongside the implementation quote.

Orchard Core is licensed under BSD-3-Clause and is built as a modular, multi-tenant framework for ASP.NET Core. Multi-tenancy matters when a single team operates several sites that must keep separate databases, content, themes and users, because one deployment can serve them all. NuGet distribution matters when your engineers already manage dependencies that way and want modules versioned like any other .NET package. Orchard Core also offers GraphQL and REST APIs for headless use and publishes Docker images, which helps if your platform team runs containers. The trade-off is that the editing experience and the upgrade path are your responsibility to test. Before committing, run a proof of concept with your real editor workflows, your chosen database and a sample tenant, and confirm which Orchard Core release line your security team will accept.

Which platform fits which scenario

This table maps common team situations to the platform that usually fits better and the condition that would change the answer. Read each row as a starting point, then test the flip condition against your own licensing, hosting and staffing constraints.

ScenarioBetter fitWhy it fitsWhat would flip the answer
Single brand site with non-technical content editorsUmbracoThe back office is built around editor workflows, and Umbraco Cloud adds managed Development, Staging and Live environments with Umbraco Deploy.Editors need no Umbraco features but the team wants an open, non-.NET stack or Azure hosting is ruled out.
Many sites run from one deploymentOrchard CoreMulti-tenancy lets one deployment host many sites with isolated databases, content, themes and users.Sites are unrelated, need separate release cycles, or the team would rather run separate instances for isolation.
Headless front end on React or another SPAOrchard CoreOrchard Core serves content through GraphQL or REST APIs, and Umbraco's Content Delivery API is opt-in and returns JSON for headless use.You need GraphQL specifically and Umbraco's JSON API covers your queries, or your team wants Umbraco's editor back office for the same content.
Agency running sites for many clientsDepends on hosting modelOrchard Core's multi-tenancy suits one shared deployment, while Umbraco suits one installation per client that the agency can manage through Umbraco Cloud or its own hosting.Clients require separate hosting, separate licensing or Umbraco Cloud's managed service, which favors one Umbraco project per client.
Team already standardized on SQL ServerEither, confirm with your teamUmbraco supports SQL Server and SQLite, and Orchard Core supports SQL Server through the YesSql abstraction.Your DBA standards or backup tooling are specific to one product, so confirm support and operational fit before choosing.
Team standardized on PostgreSQL or MySQLOrchard CoreOrchard Core supports PostgreSQL, MySQL and MariaDB, while Umbraco's documented database options are SQLite and SQL Server.You plan to use Umbraco with another database, which you should confirm with Umbraco before committing.
Editors need paid marketing or form add-onsUmbracoUmbraco Engage and Umbraco Forms are licensed add-ons with per-domain terms, which suit teams that want supported marketing and form tooling.Your budget or procurement rules rule out licensed add-ons, or you prefer building forms and personalization yourself on Orchard Core.
Team wants modules distributed as packages and Docker imagesOrchard CoreOrchard Core distributes modules and themes as NuGet packages and publishes Docker images, and it runs on Windows, Linux and macOS.Your platform team already runs Umbraco images and deployment pipelines, making a switch costly.
Long-term support window is a priorityUmbracoUmbraco 17 is an LTS release with end of life on November 27, 2028 and XLTS on November 27, 2030, per Umbraco's end-of-service policy.Your compliance or upgrade plan centers on Orchard Core's 3.x release line, so confirm its support commitments directly with the project.

How each platform is built and deployed

Both platforms run on .NET and both can be self-hosted, but they make different choices about the runtime version, the database layer, how many sites one deployment can serve and how content leaves the system. Those choices decide what your platform team patches, backs up and tests after every upgrade.

Runtime and .NET version

Current Umbraco CMS documentation requires .NET 10.0 or higher, so your build agents, hosts and container base images must track that runtime. Orchard Core is an ASP.NET Core application, so the same question applies, but its release cadence and supported runtime should be confirmed against its repository before you commit. Ask each vendor which .NET versions are supported for the release line you plan to run, and build that into your patching calendar.

Database support and installs

Umbraco installs on SQLite or SQL Server, which keeps the choice narrow and familiar for Microsoft-centric operations teams. Orchard Core uses the YesSql document abstraction and supports SQL Server, MySQL, MariaDB, PostgreSQL and SQLite. If your organization standardizes on PostgreSQL or MySQL, Orchard Core fits that estate directly. Confirm which database engines and versions each product currently supports with your DBA before you choose.

Multi-tenant model

Orchard Core is built for multi-tenancy, where one deployment hosts many sites with isolated databases, content, themes and users. That reduces the number of application instances to run, but it also concentrates blast radius and upgrade scheduling into one process. Umbraco is designed around one site per installation, so each site has its own upgrade and patch cycle. Decide which model fits your portfolio before you size your environments.

Headless delivery

Umbraco's Content Delivery API returns content as JSON, but it is opt-in and must be enabled in configuration. Preview of unpublished content requires an API key, and protected content is served only when member authentication is enabled. Orchard Core supports headless use through GraphQL or REST, so front ends read content through its API surface. Check which query model, caching layer and access controls your front-end team needs, and test them on your own configuration.

Hosting options

Orchard Core runs on Windows, Linux and macOS, which gives platform teams room to pick the host OS that matches their Kubernetes or VM standards. Umbraco can also be self-hosted on .NET, but its managed option, Umbraco Cloud, runs on Microsoft Azure with Development, Staging and Live environments. If you need a managed host, Umbraco Cloud changes the operating model entirely. Ask the vendor which hosting targets it supports for your chosen release, and which ones you would operate yourself.

Docker packaging

Orchard Core publishes Docker images, which gives teams a starting point for container builds and image scanning. Confirm whether an official Umbraco container image is maintained for your version, or whether you will build and sign your own base image. Either way, the image pipeline becomes part of your change control, so decide who owns base image updates, vulnerability scanning and rebuilds when the .NET runtime changes.

Feature comparison from supplied facts

This table sets Umbraco and Orchard Core side by side on the capabilities that usually drive the shortlist decision. Where a supplied fact does not settle a row, the cell tells you what to confirm with the vendor documentation, so use the table as a checklist of questions rather than a final verdict.

CapabilityUmbracoOrchard Core
LicenseMIT license for the Umbraco-CMS repository; paid add-ons such as Engage and Forms are licensed per domainBSD-3-Clause, per the repository license metadata
Runtime requirementCurrent documentation requires .NET 10.0 or higherBuilt on ASP.NET Core; confirm the exact .NET version against the current release notes
DatabasesSQLite or SQL Server at installation, per the requirements documentationSQL Server, MySQL, MariaDB, PostgreSQL and SQLite through the YesSql abstraction
Headless APIOpt-in Content Delivery API returning JSON; preview and protected content need an API key or member authenticationGraphQL or REST APIs for a separate application reading content
Multi-tenancyNot covered by the supplied facts; confirm with the Umbraco documentation before relying on itOne deployment hosts many sites with isolated databases, content, themes and users
Editor back officeUmbraco back office is its editing interface; confirm editor features against current Umbraco documentationLiquid templates and live preview; confirm the admin editing experience with a pilot
Environment promotionUmbraco Deploy synchronizes content and structure on Umbraco Cloud; self-hosted tooling needs confirmationDeployment plans move content between environments
WorkflowsNot covered by the supplied facts; confirm with vendor documentationWorkflows are a supplied feature; confirm scope against your approval needs
Live previewPreview of unpublished content via the Content Delivery API requires an API keyLive preview is a supplied feature
Module distributionAdd-ons such as Engage and Forms are licensed per production domainModules and themes distributed as NuGet packages

What is free and what is paid on each platform

The Umbraco CMS core is free and open source. The Umbraco-CMS GitHub repository is published under the MIT license, which permits you to use, modify and deploy the software without paying Umbraco for the core itself. Your costs for the core are the infrastructure you run it on, the developers who build and maintain it, and any third-party packages you add.

  • License: The MIT license applies to the core repository. Read the license file in the repository to confirm terms for any specific package you adopt.
  • Runtime: Current documentation requires .NET 10.0 or higher and supports SQLite or SQL Server.
  • Who pays: Your own team or a partner pays for hosting, build and upgrade work, not a license fee for the core.
  • Recurring costs: Hosting, database operation, backups and the staff time for each major upgrade recur.
  • Upgrade planning: Core support windows depend on the release line, so map your version against the end-of-service dates.

Before you budget, confirm with Umbraco which core releases and support windows apply to your project and whether you need any paid support agreement.

What drives the running cost of each

The biggest recurring costs differ by platform, so start by separating them. Umbraco is MIT-licensed and free to download, but a production site can still carry licensed add-ons, hosting, and skilled .NET and database staff. Its licensed add-ons, Umbraco Engage and Umbraco Forms, are priced per domain. Forms licenses cover one installation, a production domain, subdomains and two development or testing domains. Engage requires a license covering one production domain and up to two development or testing domains. Each additional public domain or environment therefore changes the license count. Orchard Core is BSD-3-Clause with no add-on license layer, so its recurring cost sits mostly in hosting, staff time and the maintenance of NuGet modules you choose to adopt. Umbraco Cloud is a separate recurring subscription that bundles Azure hosting, backups, a CDN and Development, Staging and Live environments. If you choose it, that fee replaces much of the infrastructure work you would otherwise pay for yourself.

One-time costs cluster around implementation, content migration and module selection. For Umbraco, the work is mostly configuring the back office, document types and Umbraco Deploy workflows, plus any Content Delivery API integration, which is opt-in and must be enabled in configuration. For Orchard Core, the work is usually larger because you assemble the solution from modules, pick a database (SQL Server, MySQL, MariaDB, PostgreSQL or SQLite through YesSql), and decide how multi-tenant sites, Liquid templates and deployment plans will be governed. Each third-party module you adopt adds a dependency to test and maintain. Ask any implementer to price these as separate line items with named deliverables, so you can see how much of the first-year budget is project work and how much is ongoing.

Upgrade effort is the recurring item most teams underestimate. Umbraco 17 is an LTS release with end of life on November 27, 2028, XLTS on November 27, 2030, and end of service on Umbraco Cloud on November 27, 2031. Umbraco 13 reaches end of life on December 14, 2026, so any site still on it has a near-term upgrade to fund. Orchard Core has no LTS window in the supplied facts, so confirm its support expectations and the release cadence (v3.0.1 on July 9, 2026 is the latest version supplied) before committing. Ask every quote to state the upgrade assumptions: target version, number of custom modules and add-ons to retest, number of environments, and whether retainer support or upgrades are included. DeployOpen fixed-scope quotes follow a written scope, so the upgrade and testing assumptions should appear there in writing, and retainers for ongoing support and upgrades are priced separately.

Moving a site from one platform to the other

This sequence moves content, templates and integrations from one platform to the other in checked stages, so the cutover happens only after the new site has been tested against the same content and users.

  1. Inventory content types, templates and integrations

    List every content type, page template, media library, form, scheduled job, search index, member area and third-party integration on the current site. Record which are used, which are stale and which only a few editors rely on. Umbraco content types and Orchard Core content types do not map one to one, so this list becomes the reference for every later step. Done when the team signs off a single inventory with an owner for each item.

  2. Map content models and media

    Map each source content type to a target model: Umbraco document types and compositions on one side, Orchard Core content types and parts on the other. Decide how fields, relationships, media folders, URL structures and redirects will carry over. Test the mapping on a small sample of pages and images, including rich text with embedded media. Done when a sample set renders with the same fields, links and images in a development environment, and the redirect plan is written down.

  3. Decide what is rebuilt rather than exported

    Content usually moves with a script or an import tool, but themes, custom code, workflows and add-on configuration usually do not. Treat each of these as a rebuild item: Razor views and Umbraco templates on one side, Liquid templates, workflows and NuGet modules on the other, plus any licensed add-on settings that must be recreated on the new domain. Confirm with each vendor which export and import tooling covers content and structure before committing, and record what the tooling does not carry. Done when every item in the inventory is marked export, rebuild or retire.

  4. Rebuild the front end or API layer

    Build the new presentation layer on the target platform. For a traditional site, this means templates, layouts and components. For a headless setup, it means the consuming application reads from the new platform's delivery API, which is opt-in on Umbraco and available through GraphQL or REST on Orchard Core. Check the API responses against the old endpoints, including preview behavior and access to protected content. Done when every page type renders from the new API or templates and the consuming application passes its own tests.

  5. Run parallel testing on staging

    Load the migrated content into a staging environment that mirrors production hosting, including search, caching, email, forms and authentication. Run functional, accessibility and performance checks, and have editors complete their normal tasks in the new back office. Compare analytics and form submissions with the live site for the same period where possible. Done when editors sign off on their workflows and the open defect list has no release blockers.

  6. Confirm the content freeze and final sync

    Agree a short window in which content is frozen on the old system, then run the final content export and import and repeat the checks on the fresh copy. Record the time of the freeze, the export checksum and the item counts for each content type. Done when the counts in the new system match the freeze-point counts and the team has a documented rollback path to the old site.

  7. Cut over DNS and monitor

    Point the production domain to the new site, confirm TLS, redirects and the cache behavior, and watch error logs, search and form submissions closely after the change. Keep the old system running in read-only mode until the team is satisfied with production behavior. Done when the live site serves the expected pages, redirects resolve and monitoring shows no regression against the baseline.

  8. Retire the old system deliberately

    Once the new site has been stable, export a final archive of the old database, media and configuration, store it under the retention policy, revoke old credentials and licenses, and decommission the servers. Cancel or transfer add-on licenses that are tied to the old domain, and update the runbook for the new platform. Done when the archive is verified, access is removed and the decommissioning record is signed off.

Where Umbraco and Orchard Core projects usually run long

Most overruns start before any code is written, when the team has not fixed the boundaries of the work. For Umbraco, that means agreeing the .NET version, the database (SQLite or SQL Server, as the current requirements allow), the content model, who edits what, and how the back office signs in against the organization's directory. Umbraco Forms and Umbraco Engage each need a license tied to the public domain and its development and testing domains, so add-on configuration belongs in the scope document with named domains, not as a later decision. For Orchard Core, the equivalent decisions are the tenant design and module selection: which sites share one deployment, which database each tenant uses, which NuGet modules and themes are approved, and who owns each one. Ask the implementation partner to write these choices down before estimating anything.

The usual slip points are unclear multi-tenant boundaries, undocumented custom modules and upgrade paths nobody planned. In an Orchard Core deployment, a tenant boundary that was drawn loosely often surfaces later as shared themes, shared users or a database that has to be split after go-live. Custom modules and Liquid or Lucene queries exposed as API endpoints are useful, but if their behavior is not documented, each upgrade becomes a investigation. On the Umbraco side, the common surprise is the upgrade timeline. Umbraco 13 reaches end of life on December 14, 2026, and Umbraco 17 is the LTS release supported until November 27, 2028, so a project started on one line needs a dated plan for moving to the next. Ask for the target LTS version, the upgrade owner and the test scope before signing.

To keep scope fixed, your team must provide decisions, access and people, and the contract should name them. Supply a named product owner who can approve the content model and tenant design within an agreed window, an identity contact who can confirm the directory groups and roles for editors and administrators, and a list of every add-on, module and integration with its license holder. Provide a staging environment, the database platform and the hosting account early, because delays there are common. Editor training also needs named participants and a session schedule. Ask the partner to show, in the written scope, which items are fixed deliverables, which depend on your inputs, and what happens to the timeline if an input arrives late.

Questions buyers ask before choosing a .NET CMS

How much does an Umbraco or Orchard Core implementation cost?

No supplied fact gives a price for either platform's implementation, and DeployOpen does not publish a price list, so the cost is set by the written scope. The main drivers are the number of content types and templates, the integrations with CRM, identity and payment systems, the hosting model, and the number of sites. Costs are split into one-time work (planning, build, content migration, testing, hardening) and recurring work (upgrades, backups, monitoring, support). For Umbraco, add any licensed add-ons such as Umbraco Forms or Umbraco Engage, since their licenses are sold per domain. Ask for a quote that lists each deliverable, the environments included, and the upgrade support period.

How long does a .NET CMS implementation take?

Duration depends on scope, not on the platform name alone. A single brand site with a small number of templates and a simple content model is a very different job from a multi-site estate with custom workflows and a headless front end. Ask for a timeline tied to named milestones: discovery, content model, templates, integrations, migration rehearsal, user acceptance testing and go-live. For Orchard Core, ask whether multi-tenant sites are in scope, since tenant design affects the whole build. For Umbraco, ask whether Umbraco Deploy and separate Development, Staging and Live environments are part of the plan, because they add setup and testing steps. No supplied fact gives a duration for either platform.

Can our team run Umbraco or Orchard Core without an outside partner?

Yes, a team with strong ASP.NET Core skills can run either platform, but the workload is not the same. Umbraco runs on .NET 10.0 or higher and installs with SQLite or SQL Server, and its back office is designed for content editors, which lowers the day-to-day editing burden. Orchard Core runs on Windows, Linux and macOS, publishes Docker images, distributes modules as NuGet packages and supports SQL Server, MySQL, MariaDB, PostgreSQL and SQLite, so it fits teams that already run containers and want database choice. Be honest about the gaps: a team needs someone who can track LTS or release windows, apply upgrades, manage backups and handle security patches. Ask a partner for a written handover plan if you want to shift that work in-house.

What skills does the team need to run a .NET CMS?

The core skills are C# and ASP.NET Core, SQL administration for the chosen database, and enough operations knowledge to manage hosting, TLS, backups and patching. For Umbraco, add Razor templating and the Umbraco Content Delivery API if the site is headless. For Orchard Core, add Liquid templates, the module model, and GraphQL or REST if the site is decoupled. A team that already knows Azure may prefer Umbraco Cloud, which provides managed hosting, automatic backups, a global CDN and HTTPS. Map your current staff against these skills before choosing, and ask any implementation partner to show who will do the build, who will do the upgrades and how knowledge is transferred.

How hard is it to migrate an existing site to Umbraco or Orchard Core?

Migration effort depends on the source platform, the volume of content, how much of the site's structure must carry over, and how many integrations must be rebuilt. Content migration is usually the largest unknown, because old content types rarely map cleanly to a new model. Plan a rehearsal migration on a copy of production data, compare the results against a content inventory, and agree how redirects and URLs will be handled before launch. Orchard Core's deployment plans can move content between environments, and Umbraco Deploy synchronizes content and structure on Umbraco Cloud, but both still require a tested mapping of your content. Ask for a migration scope that names the source system, the content types in scope, the redirect approach and the acceptance criteria.

Which .NET CMS has the longer support window, and does it matter for our budget?

Umbraco publishes LTS releases with dated support phases, so the support window is known in advance. Umbraco 17 was published on November 27, 2025, with end of life on November 27, 2028, end of Extended Long-Term Support on November 27, 2030 and end of service on Umbraco Cloud on November 27, 2031. Umbraco 13 reaches end of life on December 14, 2026, which is a near-term upgrade trigger for any site still on it. Orchard Core publishes versioned releases on GitHub, including v3.0.1 on July 9, 2026, but you should confirm its support policy in writing before relying on it. The budget effect is that every upgrade is paid work, whether you do it or a partner does, so ask for an upgrade estimate tied to each major version you expect to run.

What should we ask for in a quote for either platform?

Ask for a quote that is tied to a written scope, not a generic day rate. The quote should list the deliverables, the environments built (for example, Development, Staging and Live), the integrations, the content migration approach and the testing covered. It should also state what is one-time and what recurs, including hosting, licenses for add-ons, upgrades, backups, monitoring and support. For Umbraco, ask which add-on licenses are included and how domains are counted. For Orchard Core, ask how modules, tenants and third-party NuGet packages are maintained over time. Finally, ask who owns the code, documentation and runbooks at handover. DeployOpen works from a written scope, and its quotes follow from that scope.

How DeployOpen helps choose, implement or migrate

DeployOpen is a Chainscore Labs company that plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For Umbraco vs Orchard Core, we start by agreeing on the workload, hosting target and team skills before any build begins.

How we scope

  • We confirm the sites, content models, editor workflows and integrations that a Umbraco or Orchard Core choice must support.
  • We document which database, hosting target and .NET version your environment already standardizes on before comparing options.
  • Engagements are fixed-scope, so the written scope lists deliverables and timelines for either platform before work starts.

How we build

  • We implement the chosen platform in your cloud account, data center or air-gapped network, not on infrastructure we operate for you.
  • We build integrations for identity, content delivery APIs and any licensed add-ons your scope names, then test them against your environment.
  • Where multi-tenancy, GraphQL or NuGet modules are in scope, we document the module choices and their upgrade implications.

How we hand over

  • We deliver runbooks covering backups, upgrades, environment promotion and the LTS dates that apply to your chosen version.
  • We document configuration, licensing decisions and the domains covered by any paid add-on licenses so your team can audit them.
  • We train the operators and editors named in scope so the platform can be run without us on day one.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • A retainer can cover planned moves between LTS releases, such as the Umbraco 13 to 17 path, if that is in your written scope.
  • Ask any provider, including us, for the quoted scope in writing, including what recurs each year and what is one-time.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.