---
title: Cratis documentation
description: Cratis is an open-source (MIT) event sourcing and CQRS platform for .NET, built around the Chronicle event-sourcing database, with clients for four languages.
template: splash
hero:
  title: Software gets built differently now
  tagline: "In the age of AI, software gets built differently. Cratis is one connected, purposeful ecosystem — an event store, an application framework, a UI library, developer tooling, and AI skills — designed together, from one company, so the pieces fit instead of being assembled. It is database-agnostic (MongoDB by default, PostgreSQL, SQL Server, or SQLite) with clients for .NET, TypeScript, Kotlin/Java, and Elixir. The open-source Cratis products are MIT licensed and free to use; Studio is a paid product in Preview."
  image:
    dark: ../../assets/cratis-mark-dark.svg
    light: ../../assets/cratis-mark-light.svg
    alt: ""
  actions:
    - text: Why Cratis
      link: /why-cratis/
      icon: right-arrow
    - text: The Cratis Stack
      link: /cratis-stack/
      variant: minimal
      icon: right-arrow
    - text: Get started
      link: /chronicle/get-started/
      variant: minimal
      icon: right-arrow
---

## Cratis facts

Cratis is an open-source (MIT) event sourcing and CQRS platform for .NET, built around the Chronicle event-sourcing database. The facts below are the short, citable version; [The Cratis Stack](/cratis-stack/#capability-map) has the full product table.

- **Products.** Chronicle is the event store and runtime. Arc is the CQRS application framework with generated TypeScript proxies. Components is a React UI library for Arc. Fundamentals holds the shared building blocks, and Specifications provides BDD-style testing. The CLI, Workbench, and Chronicle MCP server inspect and operate a running Chronicle. Cratis AI ships rules and skills for AI agents.
- **Model-first layer.** Screenplay, Stage, and Prologue are experimental. Studio is a paid product in Preview.
- **Licence.** The open-source Cratis products are MIT licensed. Studio is paid.
- **Languages.** Chronicle has a first-class .NET client and clients for TypeScript, Kotlin/Java, and Elixir, plus an experimental Go client. A Python client is in development and not yet published. Arc runs on ASP.NET Core and Spring Boot, and Components targets React.
- **Storage.** Chronicle stores events in MongoDB (default), PostgreSQL, Microsoft SQL Server, or SQLite.
- **Downloads.** over 2.5 million downloads across NuGet, npm, Docker Hub and Hex, counted October 2026. Chronicle, including its predecessors Aksio Cratis and the Dolittle Runtime: over 1.5 million downloads. Arc, including Aksio Cratis Applications and the Dolittle SDK: over 1.2 million downloads.
- **Where to get it.** NuGet, npm, Maven Central, Hex, Docker Hub, and [GitHub](https://github.com/Cratis). See the [support matrix](/compatibility/#support-matrix) for what each combination supports.
- **Who builds it.** Cratis, a small company that builds and maintains the platform.

## Start here

New to Cratis? Pick the route that matches what you want to do first:

  [Build your first full-stack feature](/build-a-full-app/)

  [Choose where to start](/adopting-cratis/)

  [Follow a learning path](/learning-paths/)

## Why this matters

Most stacks are assembled: a database here, a framework there, a UI kit from
somewhere else, and glue code everywhere in between. Every seam is something a
team — and now every AI assistant — has to learn, maintain, and keep in sync.

Cratis takes the opposite bet. One company designs the whole path — from the
facts your system records, through the application that shapes them, to the
screens people use and the tools that operate it — around one shared model and
one set of conventions. We believe software built this way is better, more
robust, faster to deliver, higher quality, and more cost-effective, because the
seams you would normally hand-write and babysit simply are not there.

That same coherence is what makes the ecosystem AI-ready: conventions that are
explicit and consistent are conventions an AI agent can follow. Cratis ships
its conventions as [AI skills, rules, and diagnostics](/ai/), so assistants
build with the grain of the platform instead of guessing at it.

## One connected ecosystem — adopt it one piece at a time

Designed together does not mean all-or-nothing. Each product stands on its
own, and you choose what you need: run Chronicle alone as your event store,
build with Arc without event sourcing at all, or take the whole stack and let
value flow through the entire chain. Start with the piece that solves today's
problem — the rest are there when you want them, not before:

  [Chronicle — the event store](/chronicle/)

  [Arc — the application framework](/arc/)

  [Components — the UI library](/components/)

  [CLI and Workbench — the tooling](/cli/)

  [AI skills — the accelerant](/ai/)

  [Clients for your language](/chronicle-clients/)

## Built to deliver outcomes, not just features

Cratis is opinionated on purpose. The opinions are what carry the value:

- **Built to keep history you can trust.** Events are immutable facts, and
  read models derive from them — audit and replay are part of the design, not
  an afterthought.
- **Built to remove glue.** One C# model becomes typed frontend contracts;
  drift between backend and frontend becomes a build error instead of a
  production incident.
- **Built to fit your infrastructure.** A database-agnostic event store and
  multiple language clients mean the ecosystem adapts to you — not the other
  way around.
- **Built to be adopted piecemeal.** Every product is independently
  adoptable. Chronicle works without Arc, Arc works without event sourcing,
  Components is optional on top of Arc — you never buy the whole stack to get
  one piece, and nothing is wasted when you later add the next one.
- **Built for people and AI together.** Predictable, convention-driven
  codebases are easier for new developers to join and for AI agents to extend.

We believe this adds up to software that is more robust, faster to build, and
more cost-effective to own. [Why developers choose Cratis](/why-cratis/) walks
through the reasoning; [The Cratis Stack](/cratis-stack/) shows the whole
journey end to end.

## Use one piece — or the whole thing

Modularity is a design commitment, not a marketing line. The products
compose, but none of them holds the others hostage — each seam below is an
intentional, supported adoption boundary:

- Chronicle stands alone. Use it purely as an event store — from .NET,
  TypeScript, Kotlin/Java, or Elixir — with no Arc, no Components, and no
  other Cratis product involved.

- Arc does not require event sourcing. Use application services, MongoDB, or
  Entity Framework Core for current-state behavior, and add Chronicle only where
  an event-sourced path fits.
- Arc does not require Components. Generated TypeScript clients can be consumed
  directly or through Arc's React packages.
- Chronicle is not .NET-only. The [client landing page](/chronicle-clients/)
  maps each shipped client to its documentation and packages; the protocol
  details live in the [Chronicle architecture](/chronicle/architecture/) pages.
- Chronicle and its bundled local Workbench are available as MIT-licensed
  self-hosted software; authorized local use is separate from paid Cratis
  support, hosted coordination, or managed operational responsibility.

These boundaries do not establish compatibility with every package, provider,
browser, runtime, topology, or product version. Check the documentation and
package manifests for the combination you use.

## Go deeper

Technical depth lives in each product's own documentation:

  [Start Chronicle locally](/chronicle/get-started/)

  [Understand Chronicle architecture](/chronicle/architecture/)

  [Run Chronicle on your database](/chronicle/hosting/configuration/storage/)

  [Pick a Chronicle client](/chronicle-clients/)

  [Explore Arc](/arc/)

  [Browse Components](/components/)

  [Use the CLI](/cli/)

  [Run a sample](/samples/)

## About this site

Product repositories own their technical documentation, examples, packages, and
released contracts. This site aggregates that material into one searchable set
of tutorials, guides, explanations, and references.

- [Browse the Cratis repositories](https://github.com/Cratis)
- [Join the Cratis community](https://discord.gg/kt4AMpV8WV) to ask questions and get help from the team
- [Report a documentation problem](https://github.com/Cratis/Documentation/issues)
- [Read company, fit, and trust information](https://cratis.no/)
