TheBuilder.SchemaCity 0.2.3

dotnet add package TheBuilder.SchemaCity --version 0.2.3
                    
NuGet\Install-Package TheBuilder.SchemaCity -Version 0.2.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TheBuilder.SchemaCity" Version="0.2.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TheBuilder.SchemaCity" Version="0.2.3" />
                    
Directory.Packages.props
<PackageReference Include="TheBuilder.SchemaCity" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TheBuilder.SchemaCity --version 0.2.3
                    
#r "nuget: TheBuilder.SchemaCity, 0.2.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TheBuilder.SchemaCity@0.2.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TheBuilder.SchemaCity&version=0.2.3
                    
Install as a Cake Addin
#tool nuget:?package=TheBuilder.SchemaCity&version=0.2.3
                    
Install as a Cake Tool

Schema City

See your Umbraco content model as a city, right in the backoffice. Each Document Type is a building and each property group a floor. Traces between buildings show allowed children, compositions, block targets and picker references. Use it to understand a schema before you change it.

Try the demo in your browser. It needs no Umbraco install.

The city overview, with a circuit board for each root, Site, Microsite and Settings, beside boards for Compositions, Elements and Unreachable.

Schema City never changes your Document Types, Data Types or content. The only thing it writes is the decisions you record on findings.

Install

dotnet add package TheBuilder.SchemaCity

Restart the site and open Settings > Advanced > Schema City. Every Document Type editor also gets a Relationships tab that opens the city focused on that type. Set "SchemaCity": { "RelationshipsTab": false } in appsettings.json to leave that tab out.

Requirement Version
Umbraco 17 or 18, tested on 17.6.2 and 18.1.1
.NET 10
Backoffice user Access to the Settings section

What you can do with it

Find your way around a schema

Search by name, alias or property alias with ⌘K / Ctrl+K. Hover a building to see what it connects to. Click it to open the inspector with its properties, compositions, parents, children and block targets. Double-click to focus on a type and its neighbours.

Home in focus mode with its neighbouring types, direct connections and the inspector.

Catch problems before they ship

Findings checks the schema for blocks that point at deleted Element Types, duplicate aliases, unused types and Data Types, types no editor can reach, culture mismatches and overloaded tabs. Each row names the evidence and opens the type it is about. Mark a deliberate one as intentional with a reason, and it reopens by itself if the type changes later. Export the list as CSV for your issue tracker.

Findings grouped by kind, broken blocks and duplicate aliases first.

See what content uses

Colour the city by content count, published share, cultures, incoming references or unused types. Each Data Type has a page that shows which types use it and, for block editors, how many blocks of each Element Type content stores.

The content count lens, with Article selected and its usage in the inspector.

Know what a change will touch

Impact lists every type a change reaches through compositions, blocks, allowed children and pickers, with the path to each one and its content count. Check a new property alias against every type it would land on to catch collisions early. Copy the result as Markdown for a ticket.

Seo Composition's impact reaches 37 types and 188 content items, with an alias collision on one type.

Compare environments

Export a snapshot of the schema, then compare against it later, or against a snapshot from another environment. Changes are grouped by cause, so adding one type reads as one change with the types it affected under it. Tick off what you planned and see what nobody asked for.

A comparison with four causes, three marked planned, and one opened on its side effects.

Read the schema without the 3D

List, Tree, Matrix and Editor work without the city canvas and from the keyboard:

  • List is every type in a sortable table.
  • Tree shows what editors can create under each root, and which types they cannot reach.
  • Matrix crosses types with compositions or with Data Types.
  • Editor lays a type out in tabs and groups, the way editors see it.

The creation tree from the three root types, with the unreachable types below.

Show it to a room

Press P for presentation mode. The city fills the screen with larger names, and a caption card replaces the inspector.

Good to know

  • Treat a finding as a reason to look before you delete anything. Custom code, templates, migrations and external systems can depend on a type that no content uses.
  • Usage counts are a snapshot, cached for one minute. Block counting stops after 50,000 values or five seconds, and the app says when it did.
  • Decisions on findings are stored in Umbraco's umbracoKeyValue table, so the package needs no migration. Every user with Settings access sees the same decisions.
  • The screenshots come from the demo, which has 86 types with problems planted on purpose. They show the app without the backoffice around it.

Keyboard

Action Key
Search ⌘K / Ctrl+K
Focus the selected type Enter
Leave focus, then clear the selection Escape
Reframe the city Home
List, Tree, Matrix L, T, M
Editor or Impact for the selected type E, I
Presentation mode P
All controls ?

More

  • The docs cover every view, check and control in detail.
  • The development guide covers building, the demo site, tests and packaging.
  • Report a problem or suggest an improvement in GitHub issues.

MIT licence.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.3 4 10/20/2026
0.2.2 44 10/20/2026
0.2.1 48 10/19/2026
0.2.0 52 10/19/2026
0.1.6 53 10/16/2026
0.1.5 74 10/15/2026
0.1.4 48 10/14/2026
0.1.3 51 10/13/2026
0.1.2 72 10/12/2026