A modern .NET 10 skeleton application built with Foundatio, Foundatio.Mediator, ASP.NET Core minimal APIs, Aspire, and OpenTelemetry.
- ASP.NET Core Minimal APIs — Auto-generated endpoints via Foundatio.Mediator
- Foundatio.Mediator — Convention-based mediator with source generators, zero reflection
- Foundatio 13 — Caching, queuing, messaging, file storage, locking, jobs
- Aspire AppHost — Local dev orchestration with Redis and Mailpit
- OpenTelemetry — Tracing, metrics, and Prometheus endpoint
- xUnit v3 — Modern testing with code coverage
- GitHub Codespaces — Ready-to-code devcontainer
- GitHub Actions CI — Build, test, coverage reporting
- .NET 10 SDK
- Docker (for Aspire AppHost)
aspire runThis starts Redis, Mailpit, and the Web API with the Aspire dashboard for traces/metrics/logs.
dotnet run --project src/Foundatio.Skeleton.Webdotnet testWhen running, visit /docs for the Scalar API reference.
Use the .http files in tests/http/ with the VS Code REST Client extension.
src/
Foundatio.Skeleton.AppHost/ # Aspire orchestrator (Redis, Mailpit)
Foundatio.Skeleton.Core/ # Domain models, services, Foundatio bootstrapping
Foundatio.Skeleton.Insulation/ # Infrastructure overrides (Redis, MailKit)
Foundatio.Skeleton.Web/ # ASP.NET Core minimal API + OTel
tests/
Foundatio.Skeleton.Tests/ # xUnit v3 integration tests
http/ # .http request files
- Core registers in-memory defaults for all Foundatio abstractions (cache, message bus, queues, storage, locks) plus health checks
- Insulation conditionally replaces with Redis/MailKit when configured
- Web wires up the HTTP pipeline, OpenTelemetry, Foundatio.Mediator, and auto-generated API endpoints
- Foundatio.Mediator serves as the mediator — handlers are discovered by convention at compile time, endpoints are auto-generated from message types
Click "Code → Codespaces → New codespace" to get a fully configured dev environment with .NET, Redis, and Mailpit.
Apache 2.0