RK.
← Work

Case study · Design system · Sprinto 2025–26

A design system is an organizational decision system

You can't build an AI-native product on an inconsistent platform. Before the intelligence came the foundations, and the rules about who decides what.

Results

What changed, labelled by how it was verified.

Shipped live in the productMeasured tracked against a baselineIn progress being builtTarget a goal, not a result yet
92%
V5 design-system coverage against a 90% target.
Shipped
51+
NeoGrid components, on a shared token architecture.
Shipped
25%
Faster implementation at Sprinto with NeoGrid.
Measured
7 → 3
Tabs in the People area after the information-architecture rebuild.
Shipped
143 / 36,200
Legacy components and instances audited before migration.40 components, about 15,000 instances, migrated by July 2025.
Measured
500+
Design-system support threads resolved in a quarter.With a first response in under 24 hours.
Measured
−20%
Engineering tickets for UI inconsistencies.A design QA checklist contributed to the drop.
Measured

The real problem

NPS analysis, support tickets, customer calls and session recordings all said the same three things.

  • The product's strength was invisible. Sprinto's monitoring and GRC model was genuinely advanced, but customers couldn't see how risk, policy, monitoring and evidence connected.
  • It didn't look enterprise-ready. Against much older platforms, our answer couldn't be more flexibility. It had to look and work simpler while solving the harder case.
  • UX problems were information-architecture problems. The People area alone had seven tabs, row clicks that behaved differently from button clicks, and drawers stacking on drawers. Not bugs. Design debt.

Underneath sat a second problem. Most design-system arguments look like taste and are actually about jurisdiction. Two designers disagree about a button colour. Neither is wrong. What's missing is a rule about which layer gets to decide.

The stack

Five layers, each with a clear job and an honest status.

LayerWhat it decidesStatus
ConstitutionWhich layer decides what, and the order for settling conflictsWritten, version 0.1 In progress
NeoGridTokens, components and accessibility contracts92% coverage Shipped
RedPillHow people do complex work, including agentic patternsFramework written, prototype built In progress
DatumProves the architecture in code before asking a team to adopt itReference build, not shipped In progress
ForgeWhere ideas get tested without leaking into the systemDefined, nothing shipped Target

One rule governs all of it: a lower layer may specialise a higher layer, but must never silently contradict it. The word doing the work is "silently." Contradiction is how systems evolve. Contradiction without a marked, reasoned deviation is how they rot.

Three decisions

Decision 1

Write down the order for settling conflicts

The Constitution ranks five things: safety and accessibility, then usability, then consistency, then brand coherence, then local preference. With the order written down, "what do we prefer?" becomes "which layer decides?", and that question has an answer.

It comes with a companion rule: when a brand expression weakens usability, translate the brand's intent instead of copying its visual treatment. Brand colours enter the system as raw values only. Product behaviour resolves through meaning-based tokens, so brand presence is never a reason to colour an interactive element.

Trade-off: the brand team gives up some direct control, in exchange for a rebrand that the product can survive.

Decision 2

Specify AI UX as behaviour, not a visual style

For a compliance product, trust is the product. So RedPill defines how an agentic action behaves across nine stages, and the last four are where trust is decided:

  1. Signal
  2. Analysis
  3. Recommendation
  4. Action
  5. Approval
  6. Execution
  7. Verification
  8. Evidence
  9. Recovery

Every AI surface also declares one of five automation classes (informational, suggested, auto-executable, approval-required or blocked), and the class decides the interface. Every pattern must document its trust model: evidence, source, timestamp, confidence, history and whether it can be undone.

Trade-off: slower pattern work, and some exciting demos ruled out. We refused the sparkle, the glow and the magic button.

Decision 3

Prove the architecture in code before proposing it

Datum is a reference build of the architecture I'm proposing for NeoGrid. One file per component generates five artifacts: the registry entry, the human docs, the docs for AI agents, the contract for UI an agent assembles live, and the tool manifest. The build fails on drift, on raw colour values, and on text that fails contrast.

Next to it, Forge was designed together with its containment. An internal design studio tends to grow a second, undocumented design language. Four promotion gates, each defaulting to no, stop that from happening.

Trade-off: time spent building something that isn't the shipped product. A proposal can be argued with. A failing build can't.

What changed

NeoGrid reached 92% coverage against a 90% target, with 51+ components and a 25% faster implementation time. 12+ AI patterns now live in the system as components, not conventions. And the People area was rebuilt around one rule: reduce the number of decisions a user has to make.

AreaBeforeAfter
Navigation7 tabs in one area3 tabs
EditingDrawers stacking on drawersOne template modal for every edit
Bulk workRow by row onlyBulk actions in tables
MonitorsScattered across the areaConsolidated into member detail
SupportRecurring ticketsTickets resolved without code changes

What didn't work yet

Coverage is not the same as reuse. The real test is whether an independent team can apply a pattern in a second workflow without us in the room. That review runs in January 2027.

The Constitution has the same gap. A constitution with no record of settling a real dispute is a PDF. The measurement that matters next is the first time its conflict order settles an argument in one meeting instead of three.