Skip to content
Clean GraphQL API
Lean Mean Clean Apps

Five templates, one search box. Everything in the docs is in here, including the bits we hoped you'd skim.

Try one of these

Results say which template they came from, so you won't end up reading about Lambda when you wanted GraphQL. Again.

A Lean Mean Clean Apps template for .NET 10

Clean Architecture for GraphQL, minus the ceremony.

A .NET 10 template that gives you a tested, layered GraphQL API on Hot Chocolate in two commands. Your clients ask for exactly what they need. Revolutionary.

dotnet new install CleanGraphQLApi.Template
dotnet new cleangraphqlapi --name Acme.Movies --authorName "Your Name"
cd Acme.Movies && docker compose up -d

Three layers, the tests, a Dockerfile and a CI pipeline. Go and tell your team you've been working on it all week.

Hot Chocolate, served hot

A source-generated Hot Chocolate schema with the Nitro IDE built in, and descriptions pulled from the XML comments on your models.

Paging done properly

Relay-style cursor paging and search on movies, authors and reviews, with a DataLoader so a page of 50 movies takes three queries, not 52.

Errors with manners

Validation lives in the Application layer with FluentValidation, and failures come back as GraphQL errors with proper codes in the extensions.

Tested like it matters

xUnit, Shouldly, a schema snapshot test and a 95% coverage gate. Every test gets its own throwaway SQLite database.

Terminal window
cd Acme.Movies
docker compose up -d

Then open Nitro, the GraphQL IDE, at http://localhost:8080/graphql and start querying. The logs go to Seq at http://localhost:5341, because Console.WriteLine is not an observability strategy.

Want it locked down? Pass --authority and --audience when you create the solution and the movie, author and review queries and the review mutations need a JWT bearer token. Leave them off and it runs wide open, which is lovely on a laptop and less lovely in production.

Clean GraphQL API is one of five Lean Mean Clean Apps templates. They share the same Application and Infrastructure layers, the same tests and the same pipeline. Only Presentation changes. Like a family, really. Same genes, different haircuts.

Each template gets the same ring logo in its own colour. The rings follow the Clean Architecture diagram, from the entities in the core out to the frameworks and drivers on the edge. GraphQL drew pink, which is only fitting for the one that lets clients pick and choose. The logos, colours and everything else live in the brand kit.