A unified, scalable monorepo for .NET applications, websites, tools, and reusable libraries.
This repository hosts:
- Apps (desktop, tools)
- Websites / APIs
- Shared libraries (NuGet packages)
- Automated builds, versioning, and releases
- Full test coverage
All projects use:
- .NET 10
- Centralized versioning (Nerdbank.GitVersioning)
- Central package management
- VS Code workspace integration
- GitHub Actions CI/CD
repo/
apps/ # Executable desktop/CLI apps
web/ # Websites / APIs
libs/ # NuGet-packaged libraries
tests/ # Full test suites parallel to projects
build/ # Versioning, build logic, CI scripts
Using Nerdbank.GitVersioning:
- Tags (e.g.,
v1.2.0) control all package versions. - Pre-release versions generated automatically for branches.
Using Directory.Packages.props:
- No project contains a version number.
- No package drift across 50+ libraries.
- C# 14
- Strict analyzers
- Nullable enabled
- Automatic formatting & import cleanup
workflow_dispatch→ create tag + GitHub Release- Tag triggers NuGet publishing for changed libraries only
- Preconfigured
.code-workspacefile - Collapsible structure
- Clean navigation
To build everything:
dotnet buildTo install Nerdbank.GitVersioning:
dotnet tool install --global nbgv --version 3.9.50To run all tests:
dotnet testTo inspect the monorepo version:
nbgv get-versionPublishing runs automatically when a version tag is pushed:
git tag v1.3.0
git push origin v1.3.0Only changed libraries under /libs will be packed & published.
See CONTRIBUTING.md
MIT (see LICENSE)