hear what the community is talking about

Community Blogs

We’ve gathered blog posts from across the internet to highlight the many voices that make up our community. Powered by Umbraco, this space brings together diverse stories, ideas, and perspectives in one easy‑to‑explore hub. Dive in and discover what the community is creating, sharing, and talking about.

Want to add your future blog posts to the list? Contact us here and let us know!

Umbraco

Creating Custom Dashboards in Umbraco 17: A Beginner's Tutorial

Ever wish your Umbraco back office felt as custom as your morning coffee order? Good news—Umbraco 17 gives you the tools to craft dashboards that put the info you want front and center. No more endless clicking, no more searching for stats. Now it's just your data, your way.

by Dave Jonker

GitKraken CLI Beginner's Guide: A Better Git CLI for Developers

by Owain Williams

Umbraco In Action - Introduction to CMS for students

A session on what a CMS is, delivered to Coders Club students at Don Bosco College of Engineering, featuring practical demos using Umbraco, Next.js, and AI tools.

by Nathaniel Nunes

Umbraco In Action - Introduction to CMS for students

A session on what a CMS is, delivered to Coders Club students at Don Bosco College of Engineering, featuring practical demos using Umbraco, Next.js, and AI tools.

by Nathaniel Nunes

Building an AI-Powered Log Analyser for Umbraco at the Spark Hackathon

A look at how I built AI.LogAnalyser at the Umbraco Spark Hackathon - an open-source package that adds one-click AI analysis to the Umbraco backoffice log viewer. Click a button on any log entry and get a plain-language summary, likely cause, and recommended fix, powered by any AI provider via Umbraco.AI.

by Nevitech Blog

Developer’s Guide to Creating a Custom Umbraco 17 Backoffice Dashboard

by Debasish Gracias

OC.PowerSort Package

by Owain Williams

Getting Started with Umbraco AI

Umbraco AI is a modular, opt-in set of NuGet packages that brings AI capabilities into the Umbraco backoffice. Supporting multiple providers with no vendor lock-in, it offers prompt actions, conversational agents, and a copilot sidebar out of the box — plus a clean service abstraction layer that makes building your own custom AI features straightforward.

by Nevitech Blog

OC.UFMFallbacks Package

by Owain Williams

OC.UFMMemberLookup Package

by Owain Williams

OC.UFMMembersLookup package

by Owain Williams

Programmatically create Umbraco Members and set Password

Over the last months, I've been working on moving websites from Umbraco 13 up to Umbraco 17. I had a really hard time to find good documentation on how to work with Members so I figured I'll write a short blog post to fill some of the "gaps" I experienced in the documentation. What is Member in Umbraco? A Member in Umbraco is an external or frontend user. In other words, this is the kind of account you would use for things like a customer area, intranet login, gated content, forums, and similar functionality on the public-facing site. Working with Members programmatically When working with Umbraco Members programmatically you need to familiarize your self with the IMemberService and the IMemberManager. IMemberService is used to work with the IMember object, set username, email and update custom properties. IMemberManager is used to perform login, get current member and set password. Here is a code sample that will create a member programmatically and set the password programmatically. public class MemberRegistrationService { private readonly IMemberService _memberService; private readonly IMemberManager _memberManager; private readonly IPasswordHasher _passwordHasher; public MemberRegistrationService( IMemberService memberService, IMemberManager memberManager, IPasswordHasher passwordHasher ) { _memberService = memberService; _memberManager = memberManager; _passwordHasher = passwordHasher; } public async Task<IMember> CreateMemberAsync(string email, string password, string name) { var member = _memberService.CreateMember( email, email, name, "Member"); // or Member.ModelTypeAlias with ModelsBuilder member.IsApproved = true; _memberService.Save(member); // Optionally add to a role _memberService.AssignRole(member.Id, "Member"); // Set password var memberIdentity = await _memberManager.FindByIdAsync(member.Id.ToString()); var passwordResult = await _memberManager.AddPasswordAsync(memberIdentity!, password); // Alternative way of setting password member.RawPasswordValue = _passwordHasher.HashPassword(password); return member; } }   ..

by Markus Johansson