Not a toy example. A real project with two complete feature domains, 10 fully functional endpoints, and zero bloat.
Each feature file contains its Request DTO, validation rules, handler logic, and endpoint mapping - all in one place. Add a feature? Add a file. Delete a feature? Delete a file.
No controllers, no attributes - just lambdas and route groups. Clean composition under /api/newsletters and /api/subscribers with shared OpenAPI tags.
A single generic ValidationFilter<T> handles validation for the entire API. Add [Required], [StringLength], [EmailAddress] to any request record - done.
Standard RFC 9457 error format. Structured Error records with {Feature}.{Reason} codes - easy to trace, easy to handle on the client.
No MediatR. No FluentValidation. No AutoMapper. No Carter. Zero unnecessary abstractions - only what .NET gives you out of the box.
Code-first with typed DbContextOptions, explicit entity configuration with HasMaxLength constraints, sealed DbContext, and auto-migrations in dev.
โ How to structure a .NET 10 API using Vertical Slice Architecture
โ How to use Minimal APIs with route groups for clean endpoint composition
โ How to implement validation without FluentValidation using DataAnnotations + endpoint filters
โ How to organize Commands and Queries within feature slices (lightweight CQRS)
โ How to handle errors with structured error types and proper HTTP status codes
โ How to build a production-ready API with only 5 NuGet packages
A production-ready STARTER Vertical Slice Architecture API template built with .NET 10 and Minimal APIs. Two complete feature domains - Newsletters (full CRUD + Publish) and Subscribers (full CRUD) - with 10 fully functional endpoints, structured error handling, and modern API documentation via Scalar.
.NET developers who want to move beyond the traditional N-layer/Clean Architecture. Backend engineers looking for a lightweight, maintainable API structure. Teams that want each feature independently buildable - and anyone tired of jumping between 5+ files to understand one feature.