Skip to content
fullstackhero

Concept

fullstackhero vs Clean Architecture templates

How fullstackhero compares to the Jason Taylor and Ardalis Clean Architecture templates — the difference between shipping an architecture and shipping production modules on top of one.

views 0 Last updated

The Clean Architecture templates by Jason Taylor and Steve Smith (Ardalis) are the two most popular starting points for new .NET projects on GitHub. Together they sit at around 38,000 stars. They’re excellent — and they solve a different problem than fullstackhero.

TL;DR. Clean Architecture templates ship an architecture: the four-project layout, dependency inversion, MediatR plumbing, a sample feature. fullstackhero ships ten production modules on top of an architecture: Identity, Multitenancy, Auditing, Files, Chat, Notifications, Webhooks, Billing, Catalog, Tickets — already wired through a modular monolith. Pick a CA template if you want to learn or assemble; pick fullstackhero if you want to start shipping features today.

What each template actually contains

Jason Taylor CAArdalis CAfullstackhero
Project layoutDomain / Application / Infrastructure / WebCore / Infrastructure / WebBuildingBlocks / Modules (each with runtime + Contracts) / Host
Architectural styleClean Architecture (layered + dependency inversion)Clean Architecture (layered + dependency inversion)Modular monolith + Vertical Slice Architecture per module
Sample featureOne sample (e.g. TodoList)One sampleTen production modules + sample features per module
Identity / AuthStub / sampleStub / sampleJWT bearer + refresh + permissions + impersonation + rate-limited auth flows
MultitenancyNot includedNot includedFinbuckle 10 with EF Core global query filter, IGlobalEntity opt-out, tenant-aware cache + jobs + outbox
AuditingNot includedNot includedEF SaveChanges interceptor + per-entity before/after + queryable /audits
Background jobsNot includedNot includedHangfire 1.8 with tenant context preserved
ObservabilityConsole loggingSerilog exampleSerilog 4 + OpenTelemetry 1.15 (OTLP) pre-wired
CachingNot includedNot includedHybridCache (in-memory + Valkey) with tenant-scoped invalidation
API browserSwaggerSwaggerScalar (OpenAPI 3.1) on /scalar/
FrontendAngular 21 / React 19 (sample)None (API-only)React 19 + Vite admin + dashboard, in the repo
Stars (May 2026)~20,100★~18,200★~6,400★
LicenseMITMITMIT
MaintainerJason TaylorSteve “Ardalis” SmithMukesh Murugan + community

What Jason Taylor’s template is great at

Jason Taylor’s CleanArchitecture template is the de-facto reference for layered CA in .NET. It ships:

  • A polished four-project layout (Domain / Application / Infrastructure / Web).
  • A complete sample feature — TodoList with CRUD endpoints, validators, MediatR handlers.
  • Frontend SPAs to choose between (Angular 21 or React 19).
  • Excellent code commentary so you can learn CA conventions by reading.

It is intentionally minimal in what it adds. There is no identity beyond ASP.NET Identity scaffolding, no multitenancy, no observability beyond console logging, no file storage, no webhooks, no realtime. That is by design — the template’s job is to teach you the layout and let you fill in the rest.

What Ardalis’s template is great at

Ardalis’s CleanArchitecture is the other canonical CA template. It ships:

  • A simpler three-project layout (Core / Infrastructure / Web) tuned for the common case.
  • The same dependency-inversion discipline as Jason Taylor’s, with NuGet packages (Ardalis.Specification, Ardalis.Result, Ardalis.GuardClauses) Steve maintains alongside.
  • A long pedagogical lineage — there’s a Pluralsight course and an O’Reilly book that walk through it.
  • An explicit statement in the README: “this template does not include every possible framework or feature.”

If you want CA the way Steve teaches it, this is the most authentic source.

What fullstackhero is great at

fullstackhero starts from a different premise: most production B2B and SaaS apps are going to need the same ten or so modules anyway (identity, multitenancy, auditing, file storage, chat, notifications, webhooks, billing, catalog, tickets) plus the same dozen infrastructure pieces (caching, jobs, observability, idempotency, feature flags, …). So ship them.

That means:

  • Day one is feature work. The unglamorous parts are done. You don’t decide where the JWT keys live, how multitenancy plugs into EF Core, how Hangfire respects tenant context, or how to wire OpenTelemetry — they’re decided, wired, and tested.
  • The architecture is Vertical Slice inside a modular monolith. Each feature lives in one folder — endpoint, command, handler, validator, tests. No three-layer round-trip to add a button.
  • Two React frontends ship in the repo (admin console + tenant dashboard), so you don’t reinvent the auth-flow / permission-UI / audit-viewer wheel.

Honest trade-offs

There are real reasons to pick a CA template over fullstackhero:

  • You want to learn Clean Architecture. Jason Taylor’s template is the better classroom. fullstackhero assumes you know what handlers, repositories, and the dependency rule are.
  • You’re building a small focused service that doesn’t need ten modules. fullstackhero is over-engineered for a single-purpose internal tool. Use a CA template (or dotnet new webapi) instead.
  • Your team is already deeply invested in CA. If three years of code is structured around the four-project layout and IApplicationDbContext, switching to Vertical Slice is a real conversion. Refactor in place rather than swap.
  • You want a layered service / domain split that lets non-feature-developers work on infrastructure without touching features. CA’s layer split makes that explicit; VSA blurs it.

Can I use Clean Architecture inside fullstackhero?

Yes, with caveats. Each fullstackhero module is its own project — nothing stops you from organising the inside of a module as Domain / Application / Infrastructure layers. The kit’s outer shape (modular monolith with *.Contracts boundaries) stays the same; the inner shape becomes CA.

You’d be paddling against the grain, though. The defaults — endpoint + handler + validator in one folder — are tuned for Vertical Slice. If you want strict CA discipline, a CA template is a less ambiguous starting point.

Where to go next