Skip to content

Strategic Guide — Metrics ​

This is the single source of truth for the numbers that describe KernDX: how much code it contains, how many tests run, how big the public API is, and how it compares on size and activity. Every other guide links here instead of repeating a figure, so there is only one place to keep current. If you are looking up a statistic to cite, this is the page. Update this file when the codebase changes.

Part of the KernDX Strategic Guide.

Last verified: 2026-08-17 (1.7.0 release reconciliation; package-version rows re-verified 2026-08-21 against sfdx-project.json after the 1.7.0-13 promotion); counts recomputed from the source tree, including 73 Jest suites and 3,275 Jest test cases Source: Counts derive from the force-app/ source tree and from git log at the snapshot date. Update this file when the codebase changes.


Table of Contents ​

Expand
  1. Package Codebase
  2. Org Apex Usage (Unmanaged)
  3. Global API Surface
  4. Extension Points (Where Your Code Connects)
  5. LWC Components
  6. Salesforce Metadata
  7. Documentation
  8. Code Quality & Scanning
  9. Release Testing
  10. E2E Tests (Playwright)
  11. Combined Test Coverage
  12. Activity Snapshot
  13. The Other Frameworks We Compared

Package Codebase ​

MetricCountNotes
Apex classes (total)374sum of production + test
Apex production classes193force-app/main/default/classes/*.cls excluding _TEST.cls
Apex test classes181force-app/main/default/classes/*_TEST.cls
Apex test methods4,341counted from force-app/main/default/classes/*_TEST.cls (method-level @IsTest annotations; class-level @IsTest(...) annotations are excluded)
Apex test coverage100% per-fileenforced at every release build by scripts/evaluate-coverage.js
Lines of code (production Apex)~105Kcounted from force-app/main/default/classes/*.cls excluding _TEST.cls
Lines of code (test Apex)~114Kcounted from force-app/main/default/classes/*_TEST.cls
Lines of code (production LWC)~27Kcounted from force-app/main/default/lwc/**/*.js excluding .test.js
Lines of code (LWC Jest tests)~49Kcounted from force-app/main/default/lwc/**/*.test.js
Lines of code (total)~294Kthe rows above are rounded; exact total 294,036
Source API version67.0visible in Setup → Installed Packages → Kern → API Version; also in sfdx-project.json
Latest packaged version1.7.0-13 (released)sfdx-project.json packageAliases

Org Apex Usage (Unmanaged) ​

MetricValue
Apex characters in use1,209,561
Apex character limit10,000,000
Percent of limit used12.10%

You can see this figure yourself in Setup → System Overview. The count includes every Apex class and trigger defined in the org, excluding comments and test classes (those annotated @IsTest). Managed package code does not count towards this limit, which is why installing KernDX as a managed package leaves your org's own Apex headroom untouched.

Global API Surface ​

MetricCount
Global classes (top-level)106
Global interfaces (top-level)4
Global inner classes~94
Global inner interfaces~26
Global inner enums~16
Global methods~556

Extension Points (Where Your Code Connects) ​

The points where your own code connects to the framework. The Global API Surface section above counts the raw symbols (classes, methods, and so on). This section is more useful day to day: it groups those connection points by how you use them, so you can tell at a glance whether a given extension needs configuration, Apex, or just clicks in Flow.

Metadata-Configured (no code required) ​

MetricRecordsNotes
TriggerSetting__mdt6
TriggerAction__mdt6
FeatureFlag__mdt13excluding the TestFeatureFlag fixture record
FeatureFlagStrategy__mdt5excluding the TestFeatureFlagStrategy fixture record
ApiSetting__mdt4
ApiCredential__mdt3
MaskingRule__mdt183 active by default (MaskSecretKeys, MaskPaymentCard, and the legacy MaskCreditCard it replaces), 15 shipped as inactive templates
MaskingTarget__mdt12Wildcards wiring the card and secret rules to ApiCall__c, ApiIssue__c, AsyncChainExecution__c, and LogEntryEvent__e (4 of the 12 belong to the replaced credit-card rule)
ApiMock__mdt0Extensibility-only: no pre-built records, you add your own
ValidationRuleGroup__mdt0Extensibility-only: no pre-built records, you add your own
ValidationRule__mdt0Extensibility-only: no pre-built records, you add your own
ClassTypeResolver__mdt0Extensibility-only: no pre-built records, you add your own
AsynchronousJobSetting__mdt0Extensibility-only: no pre-built records, you add your own
FieldSetGroup__mdt0Extensibility-only: no pre-built records, you add your own
PostTriggerAction__mdt0Extensibility-only: no pre-built records, you add your own
Total pre-built CMDT records67excluding the two Test* fixture records

Code-Level (extend or implement) ​

MetricCountComposition
Base classes to extend8SEL_Base, TRG_Base, API_Outbound, API_Inbound, SCHED_Base, DTO_JsonBase, UTIL_TypeResolver.BaseClassResolver, TST_Builder.DefaultValueProvider
Top-level interfaces4IF_Queryable, IF_Schedulable, IF_Search, IF_TableDataSource
IF_Trigger inner interfaces7BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate, BeforeDelete, AfterDelete, AfterUndelete
IF_Async inner interfaces2Processable, Finishable
Other inner interfaces4IF_Chain.Step, QRY_Condition.Evaluable, UTIL_TypeResolver.INT_ClassTypeResolver, SVC_Omnistudio.OmniCallable
ComponentBuilder LWC modules6notification, controller, navigation, lightning-message, flow-navigation, all

Declarative (Flow Builder / Lightning App Builder) ​

MetricCount
Flow invocable actions (FLOW_*)16
Exposed LWC components33
LWC with Lightning page targets15
— App Page11
— Home Page7
— Record Page6
— Flow Screen5
— Tab1
— Record Action1
Pre-built flows5
Platform events1 (LogEntryEvent__e)

LWC Components ​

MetricCountNotes
LWC components (total)72force-app/main/default/lwc/**/
Jest test files73counted from force-app/main/default/lwc/**/*.test.js
Jest test cases3,275counted across all Jest test files
Jest test coverage95%+ statement / 95%+ branchenforced at every release build by scripts/evaluate-coverage.js

Salesforce Metadata ​

MetricCount
Custom objects (__c)11
Custom metadata types (__mdt)15
Platform events (__e)1
Custom fields (total)278
— on custom objects139
— on custom metadata types122
— on platform events17
Pre-built CMDT records67

Documentation ​

MetricCountNotes
Developer guides21Excluding the Strategic Guide series; counted from docs/*%20-%20Guide.md
Fast Start guides16
Strategic Guide documents9Overview + Architecture & Philosophy + Adoption + Operations + Risks + Glossary + Personas + Metrics + Choosing a Framework
API reference pages (Apex)241
API reference pages (metadata)16
API reference pages (objects)12
API reference pages (events)2
API reference pages (total)271sum of all reference categories
Total documentation files (developer-focused)4621 developer guides + 16 Fast Start guides + 9 Strategic Guide documents (excluding reference/)
Security Guide (lines)2,326bespoke threat-model guide; counted from docs/Security - Guide.md

The headline figure quoted in companion docs is 37 developer documents (21 guides + 16 Fast Starts) plus 271 API reference pages, matching the per-category totals above.

Code Quality & Scanning ​

MetricCount
PMD rules (KernDX custom)26
ESLint rules (KernDX custom)7
Node validators4
Total scanner checks37

Release Testing ​

MetricCount
Subscriber Apex classes (production)65
Subscriber test classes46
Subscriber test methods205
Anonymous Apex test sections76
Anonymous Apex assertions (PASS:)417
Anonymous Apex assertions (Assert.)561

E2E Tests (Playwright) ​

MetricCount
Spec files13
Test cases103
Page objects14
Helper modules8
CMDT fixture states24

The Test cases row counts the functional release-verification specs (parts 1 to 10). Three further spec files sit outside that count: two capture the documentation screenshots (15 cases between them) and one checks the Log Console's shipped screens against the agreed design (2 cases). The Spec files row counts all 13 files.

Combined Test Coverage ​

LayerTestsAssertions
Package Apex tests4,341 methods~7,729
Package Jest tests3,275 cases~5,054
Subscriber Apex tests205 methods~349
Subscriber anonymous Apex76 sections417
Subscriber E2E (Playwright)103 cases~342
Total8,000~13,885

The Tests column is recounted from source every release. The Assertions column carries forward from the 1.6 reconciliation and was not recounted this release.

Activity Snapshot ​

These figures describe how well-supported and ready-to-install the package is, measured at the snapshot date (2026-08-17). They are kept separate from the capability counts on purpose: how long a project has been active should not be confused with how much it does, so neither number skews the other. Figures derive from sfdx-project.json packageAliases.

MetricValueSource
Published managed-package versions141sfdx-project.json packageAliases: 04tfj000000EtB7AAK through 04tfj000000ScTlAAK
Latest packaged version1.7.0-13 (released)sfdx-project.json packageAliases
Primary contributors1single-maintainer project

KernDX is a single-maintainer project. Its readiness to install shows up in the 136 published managed-package versions, rather than in a long public commit history. So what this means for you: the package itself is well-exercised through repeated releases, even though it does not yet have the years-long open commit log of an older project.

The Other Frameworks We Compared ​

When the guides rank or compare KernDX, they measure it against the same group of other Salesforce frameworks across the same capability areas, so every comparison is like-for-like. This page only points you to the detail rather than repeating it: the Adoption and Architecture guides walk through how each area is covered, and the Risks guide covers maintenance and the bus-factor question (what happens if the people who built it move on).


Strategic Guide (Overview)