The following matrix shows which capabilities CodeCharter brings and how that compares to the most common .NET code quality tools.
Feature matrix
| Feature | CodeCharter | Roslyn analyzers | SonarQube | NDepend |
|---|---|---|---|---|
| Source code stays local | ✓ | ✓ | depends on hosting | ✓ |
| 100+ built-in rules out of the box | ✓ | no (packages added individually) | ✓ | ✓ |
| Custom rules without a build or NuGet lifecycle | ✓ | no | no | ✓ (CQLinq) |
| Coupling and architecture metrics in the schema | ✓ | no | partially | ✓ |
| OOP metrics (abstractness, instability, cohesion) | ✓ | no | partially | ✓ |
| Multi-platform CLI without an installed SDK | ✓ | no | no | no |
| SARIF output for GitHub Code Scanning and GitLab SAST | ✓ | no | ✓ | no |
| GitHub annotations as PR inline comments | ✓ | no | ✓ | no |
| Guaranteed determinism | ✓ | ✓ | ✓ | ✓ |
| No self-hosted server required | ✓ | ✓ | no | ✓ |
| Per-team license instead of per-seat | ✓ | OSS | LOC-based | per-seat |
When CodeCharter is the right choice
When you want to enforce custom rules without maintaining C# analyzer projects. CodeCharter rules live in a text file, with no build lifecycle.
When you want to enforce architecture and layering in the build. Coupling and dependencies are available in the schema, and layering rules are written directly in the DSL.
When you don't want to use a cloud service. Analysis runs locally, and source code never leaves your environment.
When you don't want to run another server. No dashboard, no database, no license management in your own infrastructure.
When per-team licensing keeps your accounting overhead manageable. CodeCharter is licensed per team per year, with no per-seat reporting.
How it fits together
CodeCharter does not replace every tool mentioned above. A practical stack for a typical .NET team:
- EditorConfig for style settings in the editor.
- Microsoft.CodeAnalysis.NetAnalyzers as the Roslyn baseline.
- CodeCharter for custom conventions, architecture, complexity thresholds, and all rules that go beyond standard sets.
EditorConfig and Roslyn analyzers handle language and style; CodeCharter handles team-specific substance.