Skip to content

Repository files navigation

Cratis Templates

Nuget

This repository contains all creation templates used by Cratis. It holds dotnet new project templates you can use to scaffold new event-sourced and CQRS applications built with Cratis Chronicle (event-sourcing database and processing runtime) and Cratis Arc (CQRS application framework for ASP.NET Core). Everything is MIT licensed and free to use.

Available templates

TemplateShort nameWhat you get
Cratis Chronicle Consolecratis-chronicle-consoleA console application connected to Cratis Chronicle
Cratis Chronicle Webcratis-chronicle-webAn ASP.NET Core web application connected to Cratis Chronicle
Cratis Web ApplicationcratisA full-stack web application with Arc (commands, queries, TypeScript proxy generation) and a React + Vite frontend using Cratis Components
Cratis Aspire Applicationcratis-aspireThe full-stack web application orchestrated with .NET Aspire

Builds

Publish

How to use

Quick steps to scaffold projects from these templates:

  • Install the published templates from NuGet.org (one-time):
dotnet new install Cratis.Templates
  • Optional: install a specific version:
dotnet new install Cratis.Templates::<version>
  • Optional: install prerelease builds from GitHub Packages:
dotnet nuget add source --name cratis-github --username <github-username> --password <github-token> --store-password-in-clear-text https://nuget.pkg.github.com/cratis/index.json
dotnet new install Cratis.Templates::<version> --nuget-source https://nuget.pkg.github.com/cratis/index.json
  • List available templates and note the Short Name you want:
dotnet new --list
  • Create a new project from a template (replace <shortname>):
dotnet new <shortname> -n MyApp -o MyApp
  • Many templates accept parameters; run dotnet new <shortname> --help to see available options.

Important

The cratis and cratis-aspire templates keep selected NuGet references as Version="*" in the template source. Their post-creation package actions intentionally resolve those references and pin the generated project to the current latest package versions. The cratis template can also install frontend dependencies (yarn/pnpm/npm) as a post-creation step.

In an interactive terminal, dotnet new asks before running post-creation actions. When scaffolding non-interactively — CI pipelines, scripts, devcontainer postCreateCommand, or any context where stdin is not a TTY — opt in explicitly:

dotnet new cratis -n MyApp -o MyApp --allow-scripts yes

To pin NuGet package versions but skip the regular cratis frontend install, pass both --allow-scripts yes and --packageManager none. The cratis-aspire template does not auto-install frontend dependencies; follow the yarn install step in its generated README.md.

  • Uninstall when needed:
dotnet new uninstall Cratis.Templates

Updating installed templates

To update to the latest version:

dotnet new update

This updates all installed template packages to their latest versions.

To update only Cratis.Templates:

dotnet new uninstall Cratis.Templates
dotnet new install Cratis.Templates

To check which version you currently have installed:

dotnet new list

Look for Cratis.Templates in the output to see the installed version.

To update to a specific version:

dotnet new uninstall Cratis.Templates
dotnet new install Cratis.Templates::<version>

Build & Test Locally

Prerequisites:

  • .NET SDK (recommended 8.0+)
  • Node.js and npm (if testing frontend/Vite templates)

Pack and install the templates locally

dotnet pack Cratis.Templates.csproj -c Release -o ./nupkgs
dotnet new -i ./nupkgs

If you prefer to install directly from the template folder (unpacked):

dotnet new -i ./Cratis.Templates

List available templates and find the short name

dotnet new --list

Create a test project from a template (replace with the template short name)

dotnet new <shortname> -n MyTestApp
cd MyTestApp
dotnet restore
dotnet build
dotnet run

If the generated project includes a frontend (Vite/Node)

cd path/to/generated/frontend
npm install
npm run dev

Verify the emitted frontend asset layout

./verify-asset-layout.sh

Scaffolds both Vite-based templates, builds their frontends, and checks that every hashed build artifact lands under wwwroot/assets/ rather than at the wwwroot root. A flat root layout cannot be expressed as a reverse-proxy, CDN or WAF path rule — the artifacts are hash-named, change every build and share no prefix — so the failure only shows up at deployment, as a blank page. CI runs the same script against the applications it has already generated.

Pass application directories to check ones you have already scaffolded:

./verify-asset-layout.sh path/to/MyTestApp

Uninstall the local template when finished

dotnet new -u <package-id-or-folder>

Iterate on the template sources, repack, and reinstall to test changes quickly.

The Cratis ecosystem

This project is part of Cratis — free, MIT-licensed tools for building event-sourced and CQRS applications.

Everything Cratis publishes today is MIT licensed and free to use.

About

Getting started templates for anything Cratis

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages