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-07-26 (1.6.0-3 release reconciliation) 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)372sum of production + test
Apex production classes192force-app/main/default/classes/*.cls excluding _TEST.cls
Apex test classes180force-app/main/default/classes/*_TEST.cls
Apex test methods4,082counted 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)~97Kcounted from force-app/main/default/classes/*.cls excluding _TEST.cls
Lines of code (test Apex)~97Kcounted from force-app/main/default/classes/*_TEST.cls
Lines of code (production LWC)~24Kcounted from force-app/main/default/lwc/**/*.js excluding .test.js
Lines of code (LWC Jest tests)~43Kcounted from force-app/main/default/lwc/**/*.test.js
Lines of code (total)~261Ksum of the rows above
Source API version67.0visible in Setup → Installed Packages → Kern → API Version; also in sfdx-project.json
Latest packaged version1.6.0-3 (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)105
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__mdt11
FeatureFlagStrategy__mdt2
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 records62

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)70force-app/main/default/lwc/**/
Jest test files71counted from force-app/main/default/lwc/**/*.test.js
Jest test cases2,963counted 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)10
Custom metadata types (__mdt)15
Platform events (__e)1
Custom fields (total)270
— on custom objects131
— on custom metadata types122
— on platform events17
Pre-built CMDT records62

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)11
API reference pages (events)2
API reference pages (total)270sum 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 270 API reference pages, matching the per-category totals above.

Code Quality & Scanning

MetricCount
PMD rules (KernDX custom)25
ESLint rules (KernDX custom)7
Node validators4
Total scanner checks36

Release Testing

MetricCount
Subscriber Apex classes (production)59
Subscriber test classes41
Subscriber test methods190
Anonymous Apex test sections76
Anonymous Apex assertions (PASS:)417
Anonymous Apex assertions (Assert.)561

E2E Tests (Playwright)

MetricCount
Spec files12
Test cases83
Page objects14
Helper modules7
CMDT fixture states24

The Test cases row counts the functional release-verification specs (parts 1 to 10). Two further spec files maintain the documentation screenshots and add 14 more cases; the Spec files row counts all 12 files.

Combined Test Coverage

LayerTestsAssertions
Package Apex tests4,082 methods~7,729
Package Jest tests2,963 cases~5,054
Subscriber Apex tests190 methods~349
Subscriber anonymous Apex76 sections417
Subscriber E2E (Playwright)83 cases~342
Total7,394~13,885

Activity Snapshot

These figures describe how well-supported and ready-to-install the package is, measured at the snapshot date (2026-07-12). 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 versions128sfdx-project.json packageAliases: 04tfj000000EtB7AAK through 04tfj000000OKK9AAO
Latest packaged version1.6.0-3 (released)sfdx-project.json packageAliases
Primary contributors1single-maintainer project

KernDX is a single-maintainer project. Its readiness to install shows up in the 128 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)