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.
| Scenario | Better fit | Why it fits | What would flip the answer |
|---|---|---|---|
| Single brand site with non-technical content editors | Umbraco | The 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 deployment | Orchard Core | Multi-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 SPA | Orchard Core | Orchard 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 clients | Depends on hosting model | Orchard 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 Server | Either, confirm with your team | Umbraco 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 MySQL | Orchard Core | Orchard 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-ons | Umbraco | Umbraco 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 images | Orchard Core | Orchard 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 priority | Umbraco | Umbraco 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.
| Capability | Umbraco | Orchard Core |
|---|---|---|
| License | MIT license for the Umbraco-CMS repository; paid add-ons such as Engage and Forms are licensed per domain | BSD-3-Clause, per the repository license metadata |
| Runtime requirement | Current documentation requires .NET 10.0 or higher | Built on ASP.NET Core; confirm the exact .NET version against the current release notes |
| Databases | SQLite or SQL Server at installation, per the requirements documentation | SQL Server, MySQL, MariaDB, PostgreSQL and SQLite through the YesSql abstraction |
| Headless API | Opt-in Content Delivery API returning JSON; preview and protected content need an API key or member authentication | GraphQL or REST APIs for a separate application reading content |
| Multi-tenancy | Not covered by the supplied facts; confirm with the Umbraco documentation before relying on it | One deployment hosts many sites with isolated databases, content, themes and users |
| Editor back office | Umbraco back office is its editing interface; confirm editor features against current Umbraco documentation | Liquid templates and live preview; confirm the admin editing experience with a pilot |
| Environment promotion | Umbraco Deploy synchronizes content and structure on Umbraco Cloud; self-hosted tooling needs confirmation | Deployment plans move content between environments |
| Workflows | Not covered by the supplied facts; confirm with vendor documentation | Workflows are a supplied feature; confirm scope against your approval needs |
| Live preview | Preview of unpublished content via the Content Delivery API requires an API key | Live preview is a supplied feature |
| Module distribution | Add-ons such as Engage and Forms are licensed per production domain | Modules 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.
Umbraco Engage and Umbraco Forms are licensed add-ons and are not part of the MIT-licensed core. Each is licensed per domain, so the cost depends on how many public sites and environments you run, not on the number of editors or visitors.
- Umbraco Engage: A marketing add-on for personalized experiences, analytics, A/B testing and targeted campaigns. Running it on a public domain requires a valid license covering one production domain and up to two development or testing domains.
- Umbraco Forms: Runs unrestricted locally but requires a valid license on a public domain. Licenses are sold per domain, also cover subdomains, include two development or testing domains, and allow one license per installation.
- Recurring terms: Confirm with Umbraco whether licenses are one-time or annual, and what renewal looks like, since the supplied facts do not state this.
- Scope of cost: Each additional production domain or installation needs its own license, so count domains early.
- Alternatives: Ask whether your forms or personalization needs can be met by other open-source components, and what that build would cost.
Before you sign, ask for a written quote that lists every domain, subdomain and environment you plan to run.
Umbraco Cloud is a managed service for building and hosting Umbraco websites on Microsoft Azure. It is a paid service that bundles hosting, backups, a global CDN, HTTPS and Development, Staging and Live environments, with Umbraco Deploy synchronizing content and structure between them. The core software remains MIT-licensed, but the hosting is a separate cost line.
- Managed hosting: Automatic backups, a global CDN and HTTPS are part of the service.
- Environments: Development, Staging and Live environments are included in the service description.
- Deployment tooling: Umbraco Deploy synchronizes content and structure between environments.
- Pricing: The supplied facts do not give Cloud plan prices, so request the current price list and what each environment costs.
- Exit cost: Ask what happens to hosting and data when you leave the service and how end-of-service dates affect your plan.
Before you commit, compare the Cloud subscription against the Azure, staffing and backup costs you would otherwise carry yourself.
Orchard Core is licensed under the BSD-3-Clause license, according to the license metadata of its GitHub repository. Its features are open source, and the supplied facts do not describe a paid tier, so the license cost of the core is zero. Your costs come from hosting, development, and any third-party modules or support you choose to use.
- License: BSD-3-Clause applies to the framework and CMS as published in the repository.
- Modules: Modules and themes are distributed as NuGet packages, and each package carries its own license and maintenance profile.
- Hosting: The framework runs on Windows, Linux and macOS and publishes Docker images, so hosting choices are yours.
- Support: No vendor support tier appears in the supplied facts, so confirm with the project and any commercial provider which support options exist.
- Third-party costs: Confirm the license and cost of every third-party module you plan to use before adoption.
Before you build, inventory each NuGet package and confirm its license, maintenance status and support options with its publisher.
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.
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.
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.
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.
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.
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.
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.
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.
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.

