Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

⚡ FullStackHero .NET 10 Starter Kit

A production-ready, modular .NET 10 monolith + two React 19 apps — the fastest way to ship a multi-tenant SaaS.

Identity, multitenancy, billing, auditing, webhooks, files, chat, real-time, caching, jobs, storage, OpenAPI and OpenTelemetry — already wired, fully tested, and 100% yours as source (no black-box packages).

fsh CLI template .NET 10 License: MIT Docs Stars

📖 Documentation · 🚀 Get Started · 🧩 Modules · 🏗️ Architecture · 📦 Changelog


Why FullStackHero?

Most starter kits give you a login page and a TODO list. This one gives you the boring, hard parts already done right — multitenancy, auth, billing, auditing, background jobs, real-time, file storage, observability — across a clean Vertical Slice backend and two polished React 19 front-ends, orchestrated locally with one command via .NET Aspire, and deployable to Docker or AWS.

You scaffold with the fsh CLI and get the complete, detached source — every BuildingBlock, Module, and Host project with real project references. No hidden NuGet runtime, nothing to "eject" later. Own it, read it, change it.

dotnet tool install -g FullStackHero.CLI fsh new MyApp cd MyApp dotnet run --project src/Host/MyApp.AppHost # 🎉 whole stack up: API + 2 React apps + Postgres + Valkey + MinIO

Then open the Aspire dashboard at https://localhost:15888, the API + Scalar docs at https://localhost:7030/scalar, the admin app at http://localhost:5173, and the dashboard app at http://localhost:5174. Sign in with a seeded demo account (e.g. admin@acme.com / Password123!).


✨ What's inside

Backend — modular monolith, vertical slices

  • .NET 10 · C# latest · Minimal APIs · Mediator (source-generated CQRS) · FluentValidation
  • EF Core 10 on PostgreSQL (Npgsql), with domain events, the specification pattern, soft-delete + audit interceptors, and tenant-isolated DbContexts.
  • JWT auth + ASP.NET Identity — issuance/refresh, roles & fine-grained permissions, rate-limited auth, password policies, sessions, impersonation.
  • Multitenancy via Finbuckle — tenant resolution, provisioning, per-tenant migrations & seeding, isolation enforced by default.
  • Cross-cutting: HybridCache on Valkey (Redis-compatible), Hangfire jobs, presigned S3/MinIO storage, mailing, idempotency, quotas, rate limiting, API versioning, RFC 9457 ProblemDetails.
  • Observability: Serilog structured logging + OpenTelemetry traces/metrics/logs, health probes, security/exception auditing.
  • Docs: OpenAPI + the Scalar API reference UI.

Front-ends — two React 19 apps

  • clients/admin (operator console) and clients/dashboard (tenant app): React 19 + Vite 7 + TypeScript, TanStack Query v5, React Router 7, Radix + Tailwind v4 (shadcn-style), real-time via SignalR/SSE.
  • Runtime config (/config.json, no rebuild per environment), hand-written typed API client, and Playwright E2E suites.

Modules (bounded contexts)

Identity · Multitenancy · Billing · Catalog · Tickets · Chat · Files · Webhooks · Auditing · Notifications — each a runtime project plus a .Contracts project (its only public surface), boundaries enforced by architecture tests.

Cloud-native & DevOps

  • .NET Aspire orchestrates the entire stack locally with one command (Postgres + pgAdmin, Valkey + RedisInsight, MinIO, migrator, demo-seeder, API, and both React apps).
  • Docker Compose production stack (deploy/docker) and Terraform for AWS (deploy/terraform); API image published to GHCR.
  • A one-shot DbMigrator (migrations are never run at API startup), and the fsh CLI + dotnet new template for distribution.

Quality

1,600+ backend tests (xUnit, Shouldly, NSubstitute, AutoFixture, NetArchTest boundaries, Testcontainers integration) and 200+ front-end E2E tests (Playwright). Path-scoped CI for backend and frontend; warnings-as-errors.


🚀 Getting started

Option 1 — the fsh CLI (recommended)

dotnet tool install -g FullStackHero.CLI fsh doctor # verify your environment (SDK, Docker, Aspire, ports) fsh new MyApp # interactive wizard

The wizard asks what to include (Aspire AppHost, the React apps). Non-interactive:

fsh new MyApp --non-interactive # full stack, Postgres fsh new MyApp --no-frontend # backend-only fsh new MyApp --no-aspire --no-frontend # minimal API + migrator

Option 2 — the dotnet new template

dotnet new install FullStackHero.NET.StarterKit dotnet new fsh -n MyApp

Option 3 — clone the repo

git clone https://github.com/fullstackhero/dotnet-starter-kit.git MyApp && cd MyApp dotnet run --project src/Host/FSH.Starter.AppHost

Prerequisites: .NET 10 SDK · Docker (Postgres/Valkey/MinIO via Aspire) · Node 20+ (for the React apps).

fsh commands: new · doctor · info · update · --version. Full reference → fullstackhero.net/docs/cli.


🧱 Tech stack

BackendFrontend
Runtime.NET 10 / C# latestFrameworkReact 19 + Vite 7 + TS 5
APIMinimal APIs + Mediator (CQRS)DataTanStack Query v5
ValidationFluentValidationRoutingReact Router 7
ORM / DBEF Core 10 / PostgreSQLUIRadix + Tailwind v4 (shadcn)
AuthJWT + ASP.NET IdentityRealtimeSignalR · SSE
MultitenancyFinbuckle 10TestsPlaywright
Cache / JobsValkey · Hangfire
StorageS3 / MinIO (presigned)Infra
DocsOpenAPI + ScalarOrchestration.NET Aspire
ObservabilitySerilog + OpenTelemetryDeployDocker Compose · Terraform
TestingxUnit · Testcontainers · NetArchTest

🗺️ Repository layout

PathWhat
src/BuildingBlocks/Shared framework libraries (Core, Persistence, Web, Caching, Eventing, Storage, Quota…)
src/Modules/{Name}/Bounded contexts — each with a runtime project + a .Contracts project (its public API)
src/Host/FSH.Starter.ApiComposition-root Web API host
src/Host/FSH.Starter.AppHost.NET Aspire orchestrator (Postgres, Valkey, MinIO, migrator, API, both React apps)
src/Host/FSH.Starter.DbMigratorOne-shot migrate/seed runner (DB is not migrated at API startup)
src/Tools/CLIThe fsh CLI (Spectre.Console)
clients/admin, clients/dashboardThe two React apps
deploy/Docker Compose, Terraform (AWS), Dokploy
src/Tests/Unit, Architecture (NetArchTest), Integration (Testcontainers)

Architecture deep-dive → fullstackhero.net/docs/architecture.


☁️ Deploy

Single-host via Docker Compose:

cd deploy/docker cp .env.example .env # fsh new pre-generates this with strong secrets docker compose up -d --build

AWS via Terraform (ECS Fargate + RDS + ElastiCache + S3/CloudFront) lives in deploy/terraform.

Guides → Local orchestration · Docker · AWS / Terraform · Database migrations.


🧪 Testing

dotnet test src/FSH.Starter.slnx # backend: unit + architecture + Testcontainers integration cd clients/admin && npm run test:e2e # Playwright (operator app) cd clients/dashboard && npm run test:e2e # Playwright (tenant app)

Integration tests require Docker (Testcontainers spins real Postgres). Architecture tests enforce module boundaries.


📖 Documentation

Full guides, module references, and architecture decisions live at fullstackhero.net:


🤝 Contributing

Issues and PRs are welcome — see CONTRIBUTING.md. Branch from and target main; CI runs path-scoped backend + frontend pipelines, and stable releases are cut from v* tags.

📄 License

MIT — see LICENSE. Built and maintained by Mukesh Murugan and the FullStackHero community, for teams that want to ship fast without sacrificing architectural discipline.

⭐ Star us on GitHub if this saves you time — it genuinely helps.

关于 About

Production Grade Cloud-Ready .NET 10 Starter Kit (Web API + React Client) with Multitenancy Support, and Clean/Modular Architecture that saves roughly 200+ Development Hours! All Batteries Included.
awsblazorboilerplateclean-architechtureclean-architecturecodewithmukeshdockerdotnetdotnet8fullstackheromodular-monolithmultitenancystarter-kittemplateterraformvertical-slice-architecturewebapi

语言 Languages

C#57.7%
TypeScript36.2%
HCL3.6%
CSS1.8%
PowerShell0.2%
Shell0.2%
HTML0.1%
Dockerfile0.1%
JavaScript0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
828
Total Commits
峰值: 168次/周
Less
More

核心贡献者 Contributors