Table of Contents

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, appsettings tuning, and redaction attributes.
  • Building blocksDomain model reference, cross-cutting Services, Dependency injection for module interfaces, and CodeBlock.DevKit.Core Utilities (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 IRequestDispatcher and ICurrentUser.
  • 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).