Tracking design system health across the org
Adoption metrics and tooling.
Static AST scanning for component imports and props, lint or detect-one-offs, parse package manifests for version drift, aggregate into a dashboard.
WHAT THIS TESTS Whether you can build objective, automated visibility into how the design system is actually used, rather than guessing or relying on self-report.
A GOOD ANSWER COVERS Use static analysis as the backbone. Walk each consuming repo and parse the AST to detect imports from the design system, count component instances, and inspect props, including style overrides and escape hatches that signal misuse. Detect one-off implementations by scanning for raw elements styled to mimic system components, hardcoded hex values instead of tokens, or local copies of primitives. Read package.json and lockfiles to compute version drift, comparing each app's pinned version against the latest release. Optionally add lightweight runtime telemetry for real render counts. Aggregate signals into an adoption dashboard with per-team and per-component scores, trends over time, and a leaderboard. Tools include scanners built on Babel or TypeScript ASTs, plus services like the open approach popularized by adoption trackers.
COMMON WRONG ANSWERS Equating npm download counts with adoption, which ignores whether code is actually used. Relying on surveys. Counting imports but not overrides, missing low-quality usage. Ignoring version drift entirely. No aggregation, leaving raw numbers no one acts on.
LIKELY FOLLOW-UPS How do you detect a one-off that visually mimics a system component? How do you handle private or many repos at scale? Static versus runtime trade-offs? How do you turn metrics into action with teams?
ONE CONCRETE EXAMPLE A nightly job clones each app, runs an AST scanner that records every design system import, prop, and override, flags any div hand-styled like a Button, and reads the lockfile to find apps two majors behind. Results feed a dashboard showing team adoption percentage, override hotspots, and version-drift offenders, which the core team uses to prioritize outreach.
Interview question
Why is counting npm download numbers a poor primary metric for design system adoption health?
- a.Download counts are reset every time a new version publishes
- b.Downloads do not reveal real usage, overrides, or version drift in codeCorrect
- c.Downloads only count production installs, never development ones
- d.npm does not expose download statistics for private packages
Why? this is the answer
Download counts say nothing about whether components are actually rendered, how they are overridden, or how stale a consumer's version is, which AST scanning and manifest parsing reveal. The other options misstate how npm download metrics behave.
Just read this? Test yourself on what you have been reading.
- #adoption-metrics
- #static-analysis
- #ast
- #tooling
- #design-systems
Put your scrolling time to good use
Learn one idea, try a quiz and save useful cards for revision. Tezvyn makes it easy to learn and stay current in your tech field, a few minutes at a time.
The iPhone app is on the way
We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.
Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles