# Design debt compounds

> Inconsistent spacing and ‘just this once’ exceptions don’t stay local. They interest rate your whole product.

- Author: Kevin Dalvi
- Published: 2026-05-20
- Read time: 7 minutes
- Tags: design, product, craft
- Canonical: https://www.kevindalvi.com/blog/design-debt-compounds

Engineering debt gets standups. Design debt gets shrugs. Until the app feels like five products sharing a login. I’ve shipped the shrug version. The interest shows up as slower decisions, noisier critiques, and a team that stops trusting the system because the system isn’t a system.

Design debt isn’t pixel perfection debt. It’s decision debt. Every one off teaches the next screen that rules are optional.

## Where it sneaks in

It starts kindly. A special modal for a launch. A denser table for power users. A motion exception because the demo felt flat. None of those are crimes. The crime is not writing down whether they were temporary or new law.

Six months later, nobody remembers the exception’s birthday. New screens copy the exception because it’s nearby. Suddenly you’ve got two spacing systems and a team arguing taste instead of shipping. That’s compound interest.

- Spacing and type scales with secret ‘custom’ values
- Color used for decoration instead of meaning
- Components forked instead of extended
- Motion that only exists on new screens, never backported

> If a junior designer can’t predict the next screen from the last three, you don’t have a system. You have a scrapbook.

## Pay interest weekly

I keep a short design debt list next to eng bugs: orphaned patterns, screens that violate tokens, copy that contradicts the brand brief. We retire two items a week. Small. Boring. Compounding the other direction.

Motion debt is especially nasty because it’s hard to screenshot. Inconsistent timing makes the product feel emotionally unreliable. I normalize durations across the app the same way I’d normalize API errors. Same language, same recovery.

Copy debt compounds the same way. Three voices across settings, onboarding, and empty states teach users the company doesn’t know who it is. I keep a short phrase bank and kill clever lines that don’t survive outside the launch tweet.

## Say no with a system

The cure isn’t a 200 page design manual. It’s a few hard rails and a culture that treats exceptions as expensive. When someone asks for a one off, the answer can be yes. With a sunset date and a ticket to reconcile.

Design debt compounds whether you acknowledge it or not. I’d rather pay a little principal every week than refinance the whole UI after the brand already feels fake to the people building it.
