Software gets built differently now
Cratis facts
Section titled “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 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. See the support matrix for what each combination supports.
- Who builds it. Cratis, a small company that builds and maintains the platform.
Start here
Section titled “Start here”New to Cratis? Pick the route that matches what you want to do first:
Why this matters
Section titled “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, so assistants build with the grain of the platform instead of guessing at it.
One connected ecosystem — adopt it one piece at a time
Section titled “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:
Built to deliver outcomes, not just features
Section titled “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 walks through the reasoning; The Cratis Stack shows the whole journey end to end.
Use one piece — or the whole thing
Section titled “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 maps each shipped client to its documentation and packages; the protocol details live in the 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
Section titled “Go deeper”Technical depth lives in each product’s own documentation:
About this site
Section titled “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
- Join the Cratis community to ask questions and get help from the team
- Report a documentation problem
- Read company, fit, and trust information