explaingit

jasontaylordev/cleanarchitecture

📈 Trending20,080C#Audience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

A starter template for building web applications with ASP.NET Core that organizes code into separate layers, business logic, database, and UI, making apps easier to maintain and test.

Mindmap

mindmap
  root((repo))
    What it does
      Generates new projects
      Separates concerns
      Includes test suite
    Tech stack
      ASP.NET Core
      Entity Framework Core
      MediatR
      FluentValidation
    Front-end options
      Angular 21
      React 19
    Database choices
      PostgreSQL
      SQLite
      SQL Server
    Developer tools
      .NET Aspire dashboard
      AutoMapper
      NUnit tests
    Use cases
      Enterprise apps
      Commercial projects
      API backends

Things people build with this

USE CASE 1

Start a new enterprise web application with a proven folder structure and best practices already in place.

USE CASE 2

Build a REST API backend with automatic validation, object mapping, and database access without manual setup.

USE CASE 3

Create a full-stack app by choosing your front-end framework (Angular or React) and database at project creation time.

USE CASE 4

Set up a testable codebase where business logic is isolated from database and UI concerns.

Tech stack

C#ASP.NET CoreEntity Framework CoreMediatRFluentValidationAutoMapperNUnit

Getting it running

Difficulty · moderate Time to first run · 30min

Requires .NET SDK installation and database setup (likely SQL Server or similar) to run migrations.

Use freely for any purpose including commercial, as long as you keep the copyright notice.

In plain English

This is a starter template for building professional-grade web applications using a software design pattern called Clean Architecture with ASP.NET Core, which is Microsoft's framework for building web applications and APIs. The purpose of Clean Architecture is to organize code in a way that keeps business logic separate from infrastructure concerns like databases and user interfaces, making the application easier to maintain and test over time. The template is installed as a .NET project template, a kind of pre-built scaffolding. With a single command, a developer can generate a complete new project choosing between Angular or React for the front end, and PostgreSQL, SQLite, or SQL Server for the database. The generated project comes fully wired up with a web API back end, a database layer using Entity Framework Core (which lets developers work with databases using C# objects instead of raw SQL), request handling via MediatR, input validation via FluentValidation, automatic object mapping via AutoMapper, and a test suite using NUnit. The project also includes support for .NET Aspire, a toolset that helps developers run and monitor multiple services locally during development, when you start the app, an Aspire dashboard opens automatically showing logs and URLs for all running components. A developer would use this template at the very start of a new enterprise or commercial web application project when they want a well-structured foundation that follows industry best practices without having to set up all these pieces from scratch. The template supports .NET 10 and is written in C# with Angular 21 or React 19 as front-end options.

Copy-paste prompts

Prompt 1
How do I install and use the Clean Architecture template to generate a new ASP.NET Core project with React and PostgreSQL?
Prompt 2
Show me how to add a new feature to a Clean Architecture project, where do I write the business logic, the database query, and the API endpoint?
Prompt 3
How does MediatR work in this template, and why is it used instead of calling services directly?
Prompt 4
What is the folder structure of a project generated from this template, and what goes in each layer?
Prompt 5
How do I run the .NET Aspire dashboard to monitor my local services during development?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.