Getting started with FullStackHero
FullStackHero is an opinionated .NET 10 starter kit for building modular, multi-tenant SaaS applications and enterprise APIs. It provides a cohesive solution layout, tenant-aware persistence, CQRS, logging, and cross-cutting infrastructure so you can ship real products instead of wiring plumbing.
Why FullStackHero?
Section titled “Why FullStackHero?”FullStackHero is designed for teams who:
- Want a clean, modular architecture but do not want to assemble everything from scratch.
- Need multi-tenancy (per-tenant databases, tenant-aware APIs, and auditing) from day one.
- Care about developer experience: analyzers, architecture tests, and a predictable solution layout.
You keep full control of the codebase and patterns, while starting from a strong, battle-tested baseline.
What’s included
Section titled “What’s included”Architecture & solution layout
Section titled “Architecture & solution layout”- Vertical slices (
Modules.*) with dedicated contracts projects and feature folders. - BuildingBlocks layer with shared infrastructure for web, persistence, caching, jobs, mailing, and more.
- Playground hosts (API, Blazor, migrations) that show how to compose modules into real applications.
See the solution structure and architecture overview for a guided tour.
Building blocks
Section titled “Building blocks”- Core – domain primitives, base types, exceptions, domain events.
- Shared – shared contracts, options, and constants (for example, database providers).
- Persistence – EF Core helpers,
DatabaseOptions, interceptors, pagination, specifications, and DbContext bindings. - Web – host composition, middleware, versioning, OpenAPI, CORS, rate limiting, and modular endpoint wiring.
- Caching –
ICacheServiceabstraction with in-memory and distributed implementations. - Jobs – background job helpers and integration for recurring/long-running work.
- Mailing & Storage – opinionated placeholders for outbound email and blob/file storage integrations.
Feature modules
Section titled “Feature modules”- Identity – authentication/authorization endpoints, user and role management, permission checks, token issuing.
- Multitenancy – tenant CRUD, Finbuckle.MultiTenant strategies (header, claim, optional query), tenant stores, and per-tenant migrations/seeding.
- Auditing – HTTP request/response auditing, masking of sensitive fields, and pluggable sinks for persisting audits.
Each module has a runtime project and a *.Contracts project so public API shape stays separate from internals.
Cross-cutting capabilities
Section titled “Cross-cutting capabilities”- Mediator-powered CQRS – commands, queries, and pipeline behaviors for validation, transactions, and logging.
- Logging & observability – Serilog with structured logging, contextual properties (tenant, user, correlation id), and health checks.
- HTTP experience – RFC7807 problem details, rate limiting, OpenAPI + Scalar UI, and an opinionated HTTP pipeline.
- Architecture & code quality – architecture tests,
.editorconfig, shared MSBuild (Directory.Build.props), central package management, and analyzers.
How to get hands-on
Section titled “How to get hands-on”- Install & run locally – follow the installation guide to restore, build, and run
Playground.Api. - Add an endpoint – use Your first API endpoint to add a Minimal API endpoint wired to a Mediator handler.
- See multi-tenancy in action – walk through the SaaS quickstart to create tenants, run migrations, and call tenant-aware APIs.
- Deep dive – read Core concepts, modules, and building blocks when you are ready to customize the platform.