Prioritizes docs and GitHub clicks with source-backed rows above the fold.
Architecture workbench · .NET 10
A hands-on architecture laboratory for .NET 10
CPnucleo is a project-management sandbox for comparing implementations and tradeoffs: REST with EF Core and Dapper, gRPC style messaging, Astro UI, PostgreSQL, Docker, NGINX, OpenTelemetry, and Hostinger deployment.
Makes the service topology the dominant visual for first-time evaluators.
Keeps broad project positioning, then compares CTA and scroll behavior.
source-backed proof
Evidence before adjectives
Each row points to the docs page that carries the implementation detail.
WebApi compares EF Core and Dapper through FastEndpoints REST. GrpcServer uses FastEndpoints Remote Messaging with Dapper against the same PostgreSQL model.
Architecture gateNetArchTestArchitecture tests protect the Domain layer from infrastructure, presentation, EF Core, Dapper, and Npgsql dependencies.
Runtime topology4 servicesWebApi, IdentityApi, GrpcServer, and WebClient share PostgreSQL. Production uses Traefik for public routing and NGINX to balance the two REST instances.
Release pathGHCR to HostingerGitHub Actions tests immutable amd64 images before Hostinger deployment. CodeQL runs separately; multi-arch manifests also wait for the arm64 build.
documentation paths
Start where your review starts
Start small, change one variable, and verify the result.
ArchitectureLayer boundaries, transport split, and domain rules.
API ReferenceREST endpoints, Identity API, and gRPC contracts.
DatabasePostgreSQL, EF Core, Dapper, migrations, and seed scripts.
TestingArchitecture tests, unit tests, integration tests, and coverage.
clone path
Run the stack, then inspect the boundaries
# Clone the repository
git clone https://github.com/jonathanperis/cpnucleo
# Build the minimal lab and seed disposable example data
cd cpnucleo
docker compose -f compose.lab.yaml up --build -d
docker compose -f compose.lab.yaml run --rm seedOpen http://localhost:5400. See Getting Started for the local account, profiles and source-development settings.