# FullStackHero — .NET 10 Starter Kit > Free, MIT-licensed, production-ready .NET 10 starter kit. Modular monolith with vertical slice architecture, multitenancy-first, and ten ready-to-ship modules — so engineering teams skip the scaffolding and write features on day one. FullStackHero is an open-source .NET 10 starter kit maintained by Mukesh Murugan. It is targeted at teams building multitenant SaaS and B2B applications on the .NET platform. The repository ships a complete, runnable application — not just templates — including a backend API, two React frontends (admin console and tenant dashboard), database migrator, and Docker / .NET Aspire orchestration. Source: https://github.com/fullstackhero/dotnet-starter-kit License: MIT Author: Mukesh Murugan (https://codewithmukesh.com) ## Architecture - Modular monolith composed of independent feature modules - Vertical Slice Architecture (VSA) inside each module — one feature lives in one folder (endpoint + handler + validator + tests) - Cross-module communication only through *.Contracts assemblies; runtime modules never reference each other - CQRS via the Mediator 3 source generator (zero runtime reflection) - FluentValidation 12 auto-wired by the module loader - Domain events + integration events on an in-memory event bus with an outbox-pattern persistence option ## Ten modules ship in v1 - Identity — JWT bearer + refresh tokens, ASP.NET Identity with roles and permissions, operator impersonation with audit trail, rate-limited login / register / password flows - Multitenancy — Finbuckle.MultiTenant 10 (claim, header, query strategies), EF Core global query filter for tenant scoping, IGlobalEntity opt-out for system rows, tenant-aware caching + jobs + outbox - Auditing — EF Core SaveChanges interceptor captures every write with before/after snapshots; user, tenant, correlation ID, request path; queryable via /audits with filters and JSON redaction - Files — Tenant-scoped object storage on MinIO / S3 with presigned uploads - Chat — Realtime channels and DMs with @mentions, threads, reactions, search, typing indicators; SignalR over Redis backplane - Notifications — Per-user inbox with real-time push via SignalR - Webhooks — Tenant-scoped subscriptions with HMAC-signed payload delivery - Billing — Subscription plans and usage metering primitives - Catalog — Products, categories, images - Tickets — Support tickets and conversations ## Eleven building blocks (shared infrastructure) Core, Persistence, Shared, Web, Caching, Eventing, Eventing.Abstractions, Jobs, Mailing, Storage, Quota. These are framework libraries consumed by every module. ## Tech stack - .NET 10 / C# latest (LangVersion = latest) - ASP.NET Core minimal APIs + Asp.Versioning 10 - EF Core 10.0.8 with Npgsql provider; PostgreSQL 17 in development and production - StackExchange.Redis 2.11 for distributed cache (HybridCache) and SignalR backplane - Hangfire 1.8 for background jobs (PostgreSQL storage); tenant context preserved across queues - Finbuckle.MultiTenant 10.0.8 - Mediator 3.0.2 (source generator) + FluentValidation 12.1 - Microsoft.FeatureManagement 4.5 with tenant-scoped overrides - Microsoft.Extensions.Http.Resilience 10.6 (Polly v8) for retries, circuit breaker, timeout, hedging - Microsoft.Extensions.Caching.Hybrid for HybridCache - Microsoft.AspNetCore.OpenApi 10.0.8 + Scalar 2.14 (OpenAPI 3.1 browser at /scalar/) - Serilog 4.x structured logging + OpenTelemetry 1.15 (traces, metrics, logs via OTLP) - .NET Aspire 13.3.3 (AppHost) for local orchestration - React 19 + TypeScript 5.7 + Vite 7 for the admin and dashboard apps - xUnit + Shouldly + NSubstitute + AutoFixture + NetArchTest + Testcontainers for testing - Around 1,500 [Fact]/[Theory] backend tests (1,484: 774 unit, 661 integration, 49 architecture) plus 214 Playwright E2E tests across the two React apps ## How to run The single command `dotnet run --project src/Host/FSH.Starter.AppHost` boots the whole stack via .NET Aspire 13. Aspire orchestrates seven services: postgres (tcp/5432), redis (tcp/6379), minio object storage (:9000 + :9001), the database migrator (one-shot), the API (http://localhost:5000), the React admin (http://localhost:5173) and the React dashboard (http://localhost:5174). For production deployment, `deploy/docker/docker-compose.yml` ships a complete Docker Compose stack covering all the above services. ## Docs - [Landing](https://fullstackhero.net/): Project overview, features, and positioning - [Getting Started](https://fullstackhero.net/docs/getting-started/): Prerequisites, install, and quick start - [Install](https://fullstackhero.net/docs/getting-started/install/): Step-by-step local setup - [Architecture](https://fullstackhero.net/docs/architecture/): Modular monolith + vertical slice design - [Modules](https://fullstackhero.net/docs/modules/): The ten shipped feature modules - [Building Blocks](https://fullstackhero.net/docs/building-blocks/): Shared infrastructure libraries - [Cross-Cutting Concerns](https://fullstackhero.net/docs/cross-cutting-concerns/): Caching, eventing, jobs, and more - [Security](https://fullstackhero.net/docs/security/): Auth, multitenancy isolation, and webhook signing - [Frontend](https://fullstackhero.net/docs/frontend/): React admin and dashboard apps - [Guides](https://fullstackhero.net/docs/guides/): Task-oriented how-tos - [Compare](https://fullstackhero.net/docs/compare/): How it differs from alternatives - [Contributing](https://fullstackhero.net/docs/contributing/): How to contribute ## Optional - [Full documentation corpus](https://fullstackhero.net/llms-full.txt): The entire docs site as a single text file ## Positioning FullStackHero is free and MIT-licensed end-to-end. The closest commercial equivalents in the .NET ecosystem charge several hundred to a few thousand dollars for similar feature coverage. The closest free templates (Jason Taylor Clean Architecture, Ardalis Clean Architecture) are deliberately minimal — they ship architecture, not modules. ABP Framework offers comparable feature breadth but is a heavier opinionated framework with its own DI and CLI; FullStackHero is closer to a "great defaults" reference application that uses only first-party Microsoft + best-in-class OSS libraries. If you are starting a new .NET 10 SaaS or B2B app, the kit gives you authentication, multitenancy, auditing, observability, background jobs, distributed cache, idempotency, webhooks, and two production-grade React frontends — all wired up — so the first thing you write is your business logic.