Introduction
This part of the docs explains how the SaaS template is put together: layers under src (libraries, clients, tests, build), how they depend on each other, and a few cross-cutting choices you will touch when you extend the app.
In order, you will find:
- Architecture overview — High-level structure, main projects, and how the template maps to a clean, maintainable layout.
- Database migrations — How database schema changes are handled in this solution.
- Localization — Supporting module: configuration, injectable services, and tutorials for multilingual apps.
- Exception handling — Supporting module:
Result, managed vs unmanaged failures, and validation pipeline. - Logging — Supporting module: automatic request and pipeline logs,
appsettingstuning, and redaction attributes. - Building blocks — Domain model reference, cross-cutting Services, Dependency injection for module interfaces, and
CodeBlock.DevKit.CoreUtilities (Result,Serializer, shared validation attributes). - Domain modeling — DDD concepts used by the template (aggregates, entities, events, specifications, domain validation); see Domain model for DevKit type reference.
- Building blocks — Services — Cross-cutting injectable contracts such as
IRequestDispatcherandICurrentUser. - Building blocks — Dependency injection — How DevKit registers module services so you inject their interfaces from UI, use cases, and services.
- UI components — Supporting module: general-purpose shared Blazor and Razor UI (paths, types, embedded source).