Convert Figma logo to code with AI

umbraco logoUmbraco-CMS

Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.

4,402
2,660
4,402
668

Top Related Projects

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.

ASP.NET Core eCommerce software. nopCommerce is a free and open-source shopping cart.

Piranha CMS is the friendly editor-focused CMS for .NET that can be used both as an integrated CMS or as a headless API.

2,230

Headless CMS and Content Managment Hub

Home of the Joomla! Content Management System

Quick Overview

Umbraco is an open-source, .NET-based content management system (CMS) that allows developers to build and manage websites, web applications, and digital experiences. It is known for its flexibility, extensibility, and user-friendly interface, making it a popular choice for a wide range of web projects.

Pros

  • Flexible and Extensible: Umbraco provides a modular architecture that allows developers to easily extend the core functionality with custom plugins and integrations.
  • User-Friendly: The Umbraco backoffice offers a clean and intuitive interface, making it easy for content editors and administrators to manage website content.
  • .NET-based: As a .NET-based CMS, Umbraco integrates well with the Microsoft ecosystem and allows developers to leverage their existing .NET skills and tools.
  • Active Community: Umbraco has a large and active community of developers and contributors, providing a wealth of resources, plugins, and support.

Cons

  • Learning Curve: Umbraco has a steeper learning curve compared to some other CMS platforms, especially for developers new to the .NET ecosystem.
  • Performance Overhead: Depending on the complexity of the website, Umbraco may have a higher performance overhead compared to more lightweight CMS options.
  • Licensing Costs: While the core Umbraco CMS is open-source, some of the more advanced features and add-ons may require a commercial license, which can add to the overall project cost.
  • Hosting Requirements: Umbraco requires a hosting environment that supports .NET, which may be more expensive or less widely available than hosting for other CMS platforms.

Code Examples

Since Umbraco is a content management system and not a code library, there are no specific code examples to provide. However, here are a few examples of how you can interact with the Umbraco API:

// Retrieve a page by its URL
var page = Umbraco.Content("/about-us");

// Create a new content item
var newPage = Umbraco.CreateContent("New Page", "/", "page");
newPage.SetValue("title", "My New Page");
newPage.Save();

// Publish a content item
page.PublishById();

// Query the content tree
var children = Umbraco.Content("/").Children;

Getting Started

To get started with Umbraco, you can follow these steps:

  1. Install Umbraco: You can download the latest version of Umbraco from the official website (https://umbraco.com/download/). Umbraco can be installed either as a standalone application or as part of a Visual Studio solution.

  2. Set up the Development Environment: Ensure that you have the necessary software installed, such as Visual Studio, .NET SDK, and any other tools required for Umbraco development.

  3. Create a New Umbraco Site: After installing Umbraco, you can create a new website by running the Umbraco installer or creating a new Umbraco project in Visual Studio.

  4. Explore the Umbraco Backoffice: The Umbraco backoffice is the administrative interface where you can manage your website's content, settings, and plugins. Familiarize yourself with the different sections and features of the backoffice.

  5. Learn Umbraco Development: Umbraco provides extensive documentation and resources to help developers learn how to build custom functionality, create templates, and integrate with other systems. You can start by exploring the Umbraco Developer Documentation (https://our.umbraco.com/documentation/getting-started/code/).

  6. Extend Umbraco with Packages: Umbraco has a vast ecosystem of packages and plugins that can be installed to add new features and functionality to your website. You can browse and install these packages from the Umbraco Package Repository (https://our.umbraco.com/packages/).

  7. Join the Umbraco Community: Umbraco has a thriving community of developers and users who share their knowledge, provide support, and contribute to the project. Joining the community can be a great way to learn and stay up-to-date with the latest Umbraco developments.

Competitor Comparisons

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

Pros of ASP.NET Core

  • More comprehensive web development framework
  • Better performance and scalability for large-scale applications
  • Extensive ecosystem with a wide range of libraries and tools

Cons of ASP.NET Core

  • Steeper learning curve for beginners
  • Requires more setup and configuration for basic projects
  • Less focused on content management compared to Umbraco CMS

Code Comparison

ASP.NET Core:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
    }
}

Umbraco CMS:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddUmbraco(_env, _config)
            .AddBackOffice()
            .AddWebsite()
            .AddComposers()
            .Build();
    }
}

ASP.NET Core provides a more flexible and customizable approach to web development, allowing developers to build various types of web applications. Umbraco CMS, on the other hand, offers a more streamlined setup specifically tailored for content management systems, with built-in features for managing web content out of the box.

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.

Pros of OrchardCore

  • Modular architecture allows for easier customization and extension
  • Built on .NET Core, offering better cross-platform support
  • Supports multi-tenancy out of the box

Cons of OrchardCore

  • Steeper learning curve due to its modular nature
  • Smaller community and ecosystem compared to Umbraco
  • Less mature, as it's a newer project

Code Comparison

OrchardCore:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddOrchardCms();
    }
}

Umbraco:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddUmbraco(_env, _config)
            .AddBackOffice()
            .AddWebsite()
            .AddComposers()
            .Build();
    }
}

Both CMSs use a similar approach for configuration in the Startup class, but OrchardCore's setup is more concise. Umbraco offers more granular control over which components to include during initialization.

ASP.NET Core eCommerce software. nopCommerce is a free and open-source shopping cart.

Pros of nopCommerce

  • Specialized e-commerce platform with built-in shopping cart functionality
  • More extensive out-of-the-box features for online stores
  • Larger community and ecosystem focused on e-commerce solutions

Cons of nopCommerce

  • Less flexible for non-e-commerce websites
  • Steeper learning curve for developers new to e-commerce platforms
  • More complex setup and configuration process

Code Comparison

nopCommerce (Product Controller):

[HttpPost]
public virtual IActionResult ProductDetails_AttributeChange(int productId, bool validateAttributeConditions, IFormCollection form)
{
    var product = _productService.GetProductById(productId);
    if (product == null)
        return new NullJsonResult();

Umbraco-CMS (Content Controller):

[HttpGet]
public IActionResult Index(int? id)
{
    var content = id.HasValue ? _contentService.GetById(id.Value) : _contentService.GetRootContent();
    if (content == null)
        return NotFound();

The code snippets show that nopCommerce is more focused on e-commerce-specific functionality, while Umbraco-CMS provides a more general-purpose content management approach. nopCommerce deals with product details and attributes, whereas Umbraco-CMS handles generic content retrieval and management.

Piranha CMS is the friendly editor-focused CMS for .NET that can be used both as an integrated CMS or as a headless API.

Pros of Piranha.core

  • Lightweight and modular architecture, making it easier to customize and extend
  • Built on .NET Core, offering cross-platform compatibility and better performance
  • Simpler content modeling and management, ideal for smaller projects

Cons of Piranha.core

  • Smaller community and ecosystem compared to Umbraco-CMS
  • Less extensive documentation and learning resources
  • Fewer built-in features and integrations out of the box

Code Comparison

Piranha.core:

[ContentType(Title = "Standard page")]
public class StandardPage : Page<StandardPage>
{
    [Field]
    public StringField Title { get; set; }
}

Umbraco-CMS:

[ContentType(Alias = "standardPage")]
public class StandardPage : PublishedContentModel
{
    public StandardPage(IPublishedContent content) : base(content) { }

    public string Title => this.Value<string>("title");
}

Both examples show content type definitions, but Piranha.core uses a more straightforward approach with attributes and properties, while Umbraco-CMS relies on a base class and property accessors.

2,230

Headless CMS and Content Managment Hub

Pros of Squidex

  • Headless CMS architecture, offering more flexibility for developers
  • Built-in GraphQL API support
  • Containerized deployment with Docker support

Cons of Squidex

  • Smaller community and ecosystem compared to Umbraco
  • Less extensive documentation and learning resources
  • Fewer built-in features for content editors

Code Comparison

Squidex (C#):

public sealed class ContentController : ApiController
{
    [HttpGet]
    [Route("api/content/{app}/{schema}/{id}")]
    public async Task<IActionResult> GetContent(string app, string schema, Guid id)
    {
        // Content retrieval logic
    }
}

Umbraco (C#):

public class ContentController : UmbracoApiController
{
    [HttpGet]
    public IActionResult GetContent(int id)
    {
        var content = Umbraco.Content(id);
        return content != null ? Ok(content) : NotFound();
    }
}

The code comparison shows that Squidex uses a more granular approach to content retrieval, specifying app and schema in addition to the content ID. Umbraco, on the other hand, relies on its built-in content structure and uses a simpler content retrieval method. This reflects Squidex's headless architecture and Umbraco's more traditional CMS approach.

Home of the Joomla! Content Management System

Pros of Joomla

  • Larger community and more extensive ecosystem of extensions
  • Better multilingual support out of the box
  • More flexible user management and access control system

Cons of Joomla

  • Steeper learning curve for beginners
  • Can be slower and more resource-intensive, especially with many extensions
  • Less intuitive admin interface compared to Umbraco's clean design

Code Comparison

Joomla (PHP):

<?php
defined('_JEXEC') or die;
use Joomla\CMS\Factory;

$document = Factory::getDocument();
$document->setTitle('Custom Page Title');

Umbraco (C#):

using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Web.Common.PublishedModels;

public class CustomPage : PublishedContentModel
{
    public CustomPage(IPublishedContent content) : base(content) { }
    public string CustomTitle => this.Value<string>("customTitle");
}

Both CMSs offer powerful content management capabilities, but they differ in their approach and target audience. Joomla provides more out-of-the-box features and flexibility, while Umbraco offers a cleaner, more developer-friendly environment with its .NET foundation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Umbraco CMS

GitHub license PRs Welcome Mastodon Follow Chat about Umbraco on Discord Read what's going on in the Umbraco Discord chat now Build status

Umbraco is a free and open source .NET content management system. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.

Learn more at umbraco.com

Umbraco Logo

Looking to install Umbraco?

You can get started using the following commands on Windows, Linux and MacOS (after installing the .NET Runtime and SDK):

dotnet new install Umbraco.Templates
dotnet new umbraco --name MyProject
cd MyProject
dotnet run

Documentation

Our comprehensive documentation takes you from the fundamentals on how to start with Umbraco to deploying it to production.

Some important documentation links to get you started:

Get help

If you need a bit of feedback while building your Umbraco projects, we are chatty on Discord. Our Discord server serves both a social space but also has channels for questions and answers. Feel free to lurk or join in with your own questions. Or just post your daily Wordle score, up to you!

Looking to contribute back to Umbraco?

You came to the right place! Our GitHub repository is available for all kinds of contributions:

Umbraco is contribution-focused and community-driven. If you want to contribute back to the Umbraco source code, please check out our guide to contributing.

Tip: You should not run Umbraco from source code found here. Umbraco is extremely extensible and can do whatever you need. Instead, install Umbraco as noted above and then extend it any way you want to.