// the find
fullstackhero/dotnet-starter-kit
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.
A .NET 10 + React 19 scaffolding kit for multi-tenant SaaS — auth, billing, multitenancy, real-time, file storage, webhooks, and background jobs wired up before you write your first line of business logic. You run `fsh new MyApp` and get detached source with real project references, not a NuGet black box. Aimed at solo devs or small teams who want to skip the plumbing and ship a product.
- The one-shot DbMigrator pattern is the right call — migrations never run at API startup, which prevents the class of production incidents where a multi-instance deploy races on schema changes.
- Module boundaries enforced by NetArchTest architecture tests, not just folder convention. If you accidentally reach across a module boundary, CI breaks. That discipline is rare in starter kits.
- Source-generated CQRS via Martinothamar's Mediator instead of MediatR — no reflection overhead at runtime, and the source generator surfaces wiring errors at compile time rather than startup.
- The `.agents/` directory ships with rules, skills, and workflows for AI coding agents (separate files for CLAUDE.md, AGENTS.md, GEMINI.md). First starter kit I've seen that treats AI pair programming as a first-class workflow.
- The 'it's all yours' pitch cuts both ways: once you scaffold, upstream fixes don't merge back. You own the Chat module, the Billing module, and the Webhooks module forever — including security patches in code you didn't write and probably don't fully understand yet.
- Admin and dashboard are two entirely separate React apps with duplicated shadcn components. When Tailwind v4 or Radix ships a breaking change, you fix it twice, in two different package-lock files, hoping you didn't miss anything.
- Finbuckle multitenancy adds non-obvious complexity that the README treats as a solved problem. Per-tenant migrations, tenant resolution middleware, and isolated DbContexts interact in ways that will surprise you the first time a tenant provisioning step partially fails.
- The breadth is also the adoption risk: you inherit Hangfire, SignalR, a Billing module, a Chat module, and a Tickets module on day one. If your MVP needs none of those, you're now maintaining dead code and explaining to new contributors why it's there.