Relatude.CMS

Relatude.CMS — content management built on Relatude.DB

Your content, in the database your site already runs on. Relatude.CMS is the content layer for ASP.NET Core on top of Relatude.DB, the open-source object-oriented graph datastore for .NET. Pages, templates, sites and users are C# interfaces and nodes like any other, a URL becomes a page through the store's own URL manager, and the page renders with an MVC view, a controller, a Razor Page or any IResult — set once per type in code, or chosen per page by an editor.

Editors work in the CMS interface, which the site serves itself and plugins extend. Developers add a whole feature, server and interface, as a module in one line. Every read the interface makes runs as the signed-in user, and every write goes through the same transaction plugins as a write from C#.

dotnet add package Relatude.DB.CMS --prerelease

How it builds on Relatude.DB

Your site

an ASP.NET Core application

Declares its content types, decides how pages look, and owns the schema through the admin UI. Six lines make it a CMS host:

var builder = WebApplication.CreateBuilder(args);
builder.AddRelatudeCMS().AddMvcRendering();

var app = builder.Build();
app.UseRelatudeCMS();
app.MapRelatudeCMS();
app.Run();

Relatude.CMS

NuGet Relatude.DB.CMS · not open source

What every content site needs, and nothing the database already does.

  • Content modelItems, pages, templates, sites, users and groups: interfaces your own content types extend.
  • RenderingA URL to a page, and the page to an MVC view, a controller, a Razor Page or any IResult.
  • CMS interfaceThe editors' application, served by the site at /relatude.cms/ and extended with plugins.
  • API and TypeScript SDKThe NodeStore over HTTP and typed in TypeScript, always as the signed-in user.
  • ModulesOne feature in one package: its model, plugins, settings, routes, seeds and interface.
  • Settings and analyticsA CMS tab per database in the admin UI, and page views counted without cookies.

Relatude.DB

open source · MIT

The object-oriented graph datastore under it all, running in the site's own process.

  • Interfaces as the schemaRelatude.DB implements the content types: no SQL, no migrations, relations as typed edges.
  • Queries and searchTyped queries, full-text and vector search and facets, in C# and through the SDK.
  • Transaction pluginsHooks on every write, however it comes in. The CMS checks pages and templates with them.
  • Files and URLsFiles stored with the data, and the URL manager the CMS asks to turn a URL into a page.
  • Read accessPer user, group and culture, so each visitor and editor sees only what they may read.
  • Admin UISchema, settings and data at /relatude.db, where the CMS adds its own settings tab.

Modelling, queries, files and URLs are covered in the Relatude.DB manual. The Relatude.CMS manual covers what the CMS adds, and links across wherever the two meet.