Why Umbraco Projects Become Expensive: Technical Failure Patterns
Umbraco projects rarely become expensive because of one catastrophic decision. Cost grows when content architecture, custom code, data, search,...
Start typing to search articles and topics.
Umbraco projects rarely become expensive because of one catastrophic decision. Cost grows when content architecture, custom code, data, search,...
ASP.NET Core does not force you into one application architecture. That freedom is useful, but it also makes it easy to accumulate layers, abstractions and...
Umbraco 9 did more than replace one runtime with another. Moving from .NET Framework to ASP.NET Core changed where Umbraco could run, how projects were...
A production-focused guide to designing explicit contracts, handling realistic failures, protecting trust boundaries, and recognizing defensive-programming...
A practical, read-only T-SQL technique for finding published content that uses a specific data type in Umbraco 13
Need to preserve old URLs after an Umbraco 17 migration? Here is how umbracoRedirectUrl works, how to add records with SQL Server, and how to verify the...
How the Umbraco 13 backoffice idle timeout works, which settings control it, and how to balance editor convenience with security.
Your Azure deployment suddenly fails with AADSTS7000222. Here is how to restore it quickly and remove the expiring secret permanently with workload identity...
While migrating and publishing more than 805,000 documents from a legacy CMS, I was looking for every source of unnecessary background work. SQL Profiler...
Configure ASP.NET Core Response Compression Middleware for Brotli and Gzip, understand the HTTPS and compression-level trade-offs, and verify the result in...
A single unreadable JSON log file made the Umbraco 13 LogViewer practically unusable. The first fix addressed Newtonsoft.Json MaxDepth. A later failure...
Send email through SendGrid's SMTP relay from a .NET Framework 4.8 application using System.Net.Mail.SmtpClient. The tested example includes HTML email,...
Learn how to remove Examine indexing for enhanced site performance, faster content publishing, and improved cold boots. Check benefits and pain points.
After upgrading a production-scale Umbraco installation from 11.5.0 to 13.4.1, publishing and unpublishing became extremely slow and database lock errors...
Learn how to set a dynamic Multinode Treepicker start node in the AngularJS backoffice so editors open the picker in the relevant part of the content tree.
The built-in nodeName field is useful for searching, but sorting Examine results by it requires additional index configuration. This guide shows how to make...
AngularJS can render HTML stored in a model, but the security implications depend on whether that HTML is sanitized or explicitly trusted. This guide shows...
If System.Net.Mail.SmtpClient sends an invalid hostname in the SMTP EHLO command, some mail servers reject the connection before the message is sent. Here is...