Headless CMS for .NET

Code-first content, no compromises

Klassd is a headless CMS for .NET. Define your content model as C# classes and deliver it to any frontend over a clean JSON API.

Get started on GitHub →

Code-first

Your content types are C# classes. Refactor them in your IDE — no content-type designer.

Headless

A public JSON (and opt-in GraphQL) delivery API any frontend can read — this site is a Vue app consuming it.

Pluggable

Swap storage (Mongo/Postgres/SQLite) and media (FileSystem/S3/GCS) backends freely.

Drafts & versioning

Edit a draft without touching what's live, publish when ready, schedule it, and roll back to any prior version.

Roles & search

Capability-based roles (Editor/Author), plus opt-in full-text search over Lucene.NET.

Extensible

HMAC-signed webhooks and synchronous in-process notifications you can hook into — or cancel.

Your content model is just C#

Define pages and blocks as classes. The engine reflects over them to drive the admin and a headless JSON API — no content-type designer, no migrations to hand-write.

HomePage.cs
[CmsPage(DefaultSlug = "", Icon = "house")]
public class HomePage : PageBase
{
    [Localized]   // value per locale
    public string Title { get; set; } = "";

    public BlockArea Hero { get; set; } = new();
}
Install
# Klassd is in beta — install the prerelease packages
dotnet add package Klassd.Backoffice --prerelease
dotnet add package Klassd.Data.Sqlite --prerelease

Evaluating headless CMSs? See how Klassd's code-first approach compares to Umbraco and Payload.

Compare →