RPS // Blogs // How to refactor a design system: a practical 7-step playbook

The audit nobody schedules time for, the cleanup nobody volunteers for, and how AI is quietly changing both.

Every enterprise design system eventually develops the same illness.

You ship a few features. Different squads. Different sprints. Different “we just need it live by Friday” moments. Each decision is reasonable in isolation. Two years later you open your token file and find this:

color-blue-500:  #2776BA

brand-blue-500:  #2776BA

Same hex. Different names. Used inconsistently across the product.

You also have hardcoded values in components that nobody got around to tokenising, three subtly-different spacing scales, four ways to write a button hover state, and a design system Slack channel where someone asked “is –text-primary the same as color-text-base?” eight months ago. Nobody ever answered.

This is the unglamorous middle of every design system’s life. And it’s where the bill comes due , usually at the worst possible moment, when you’re trying to ship a rebrand, build dark mode, or migrate to a new front-end framework.

The good news: there’s a method to this work. The other good news, finally arriving in 2026, is that AI can take a meaningful chunk of the tedium off your plate , if you set it up correctly.

Here’s the practical playbook we’ve been running internally and with clients at The Oranje Co.

Before you start: signs you need a refactor

Don’t refactor a healthy system. But do refactor if you’re seeing any of these:

  • The same value lives under multiple token names
  • Designers and developers are arguing about which token to use
  • Hardcoded hex/px values are creeping back into components
  • A new joiner can’t tell which patterns are canonical
  • You’re about to do a rebrand, dark mode launch, or framework migration
  • Visual inconsistencies are showing up across product surfaces
  • Your component library exists but adoption is patchy

If you nodded at three or more, you have what we’ve been calling pattern debt , and a refactor is overdue.

A note on the prompts below. Each step ends with a copy-paste prompt you can drop into Claude Code, Cursor, GitHub Copilot, or any agent that can read your codebase. They’re written to be strict , explicit scope, hard stops, no autonomous decisions where a human needs to be in the loop. Adjust the bracketed sections to your stack and conventions before running. Use them as starting points; refine for your team.

Step 1 , Inventory: map everything that exists today

Before you decide what the system should be, document what it is.

This step is almost always skipped, and it’s the reason most refactors fail. You can’t fix what you haven’t measured.

A complete inventory captures:

  • Every defined token (name, value, type, file location)
  • Every hardcoded value in components (yes, every one)
  • Every component variant currently in production
  • Every place a token is referenced across the codebase
  • Every place the codebase diverges from the design files

Lucas Rappart puts it well: “Before you decide what the system should be, spend a week mapping what already exists. Open every page of the product.” A full inventory of an enterprise product can take a week of focused work. Don’t skip this.

Where AI helps here: crawling the codebase for token usage, hardcoded values, and component instances is exactly what modern code agents do well. Claude Opus 4.8’s 1M-token context window is on by default, meaning the model can hold an entire large codebase in working memory while executing. What used to take a week of grep-and-spreadsheet work now takes hours.

What you produce: one master inventory spreadsheet or database. Every token, every reference, every hardcoded value. This becomes the source of truth for the entire refactor.

📋 Prompt to copy-paste:

You are auditing a design system codebase. Crawl the entire repository at the path I provide and produce a complete inventory as a CSV with these columns:

– token_name

– token_value (hex / px / rem / etc.)

– token_type (color / spacing / typography / radius / shadow / motion / other)

– defined_in_file (full path)

– defined_at_line

– usage_count (how many times this token is referenced across the codebase)

– usage_files (top 10 files where it is used)

Then produce a second CSV listing every hardcoded value found inside component files (raw hex, raw px, raw font-size declarations) with:

– hardcoded_value

– value_type

– file

– line

– component_or_context

Do not modify any files. This is a read-only audit. Output: two CSVs and a one-paragraph summary of total tokens, total hardcoded values, and top 5 most-used tokens.

Step 2 , Identify: find duplicates, drift, and hardcoded values

Now you analyse the inventory. You’re looking for three categories of mess:

Duplicates. Same value, different names. color-blue-500 and brand-blue-500 both at #2776BA. The classic enterprise inheritance.

Drift. Near-duplicates that should be the same. #2776BA and #2876BC , close enough that no user would tell them apart, but they exist as separate tokens because two designers tokenised them independently.

Hardcoded values. Raw hex codes, raw pixel values, raw font sizes living directly in components. These are tokens that should exist but don’t.

A UX Planet piece on design tokens names the root cause directly: “Over time, different teams start using different names for the same color, leading to confusion and duplicate tokens. When the brand color changes, updating these scattered tokens becomes an overwhelming task.”

That’s exactly the pattern.

Where AI helps here: AI is genuinely excellent at this kind of structured analysis. Feed it your inventory, ask it to flag duplicates and near-duplicates with a similarity threshold, and you’ll have a clean exception report in minutes. Token extraction and analysis tooling can reduce manual labour by up to 50%.

What you produce: a clean list of every duplicate token, every drift instance, and every hardcoded value, with locations.

📋 Prompt to copy-paste:

Using the inventory CSVs from Step 1, identify three categories of issues:

1. EXACT DUPLICATES , tokens with identical values but different names. Group by value. For each group, list every token name, file location, and total usage count.

2. NEAR-DUPLICATES , tokens with values within a 2% similarity threshold for colors (use Delta E ≤ 3 for color values) or within 2px for spacing. Group by similarity cluster.

3. TOKEN CANDIDATES , hardcoded values that appear 3 or more times across the codebase and should be tokenised. Group by value and propose a token name following BEM-style naming (e.g., color-blue-500, space-md, font-size-lg).

Output a single report in markdown with three sections, one per category. For each item include: locations, usage count, and a one-line note on suspected cause (e.g., “likely independent tokenisation by separate squads”). Do not propose fixes yet. This is diagnostic only.

Step 3 , Strategy: decide what stays, renames, and deprecates

This is where humans take back the wheel.

For every duplicate or near-duplicate you found, you need an explicit decision:

  • Keep , this token is canonical, leave it alone
  • Rename , same value, better name (preserve the value, alias the old reference)
  • Merge , multiple tokens collapse into one
  • Deprecate , this token is being removed, mark for migration
  • Add , a new token needs to exist (often a new generic scale)

The reason this stays human: the value is mechanical, but the naming convention is strategic. Are your tokens organised by colour family (blue-500), by brand (brand-primary), or by semantic role (color-action-primary)? Different choices serve different scaling needs. Get this wrong and you’ll refactor again in eighteen months.

Atlassian’s migrate to tokens guide explicitly emphasises this: their codemods generate suggestions, but “manual review is required.” Strategy doesn’t automate.

What you produce: a token-by-token migration map. Status column. Impact column. Proposed solution column. (If you’ve seen the spreadsheet floating around the design ops community for this kind of work, you know what we mean.)

📋 Prompt to copy-paste:

Using the duplicates and near-duplicates report from Step 2, generate a token migration map as a CSV with these columns:

– new_token_name

– new_value

– current_token_name (in codebase)

– current_value

– status (one of: KEEP / RENAME / MERGE / DEPRECATE / ADD / VALUE_CHANGED)

– impact (one-line description of what changes in the codebase)

– proposed_solution (the exact action: e.g., “rename color-blue-* to color-brand-blue-* and add alias”, “merge into single token”, “deprecate with 6-month sunset”)

– breaking_change (yes/no)

– affected_files_count

I will provide the naming convention to follow. Apply these rules:

– Brand-critical tokens MUST be preserved (do not change values, only rename)

– Generic scales should follow [INSERT YOUR CONVENTION e.g., “Tailwind”] naming

– Deprecated tokens get a comment marker explaining the migration path

– No autonomous decisions on tokens flagged as “ambiguous” , list those separately for human review

Output: the CSV migration map + a separate “needs human decision” list.

Step 4 , Guardrails: set the rules before you touch code

Before any code changes happen, lock down:

  • Naming convention. Document it. Publish it. Make it impossible to add a token that violates it.
  • What’s untouchable. Brand-critical tokens. Production-blocking surfaces. Customer-facing flows mid-migration.
  • What’s reversible. Which changes you can ship behind a feature flag, which need full deployment.
  • Who approves what. Single source of truth on who signs off on the migration plan, and who signs off on each merged PR.
  • What “done” means. Concrete acceptance criteria. Visual regression passing? Zero hardcoded values? Adoption metric above X%?

Mike Cvet, who has written some of the sharpest material on migrations at scale, points out: “Will Larson says migrations are the sole scalable fix to tech debt. This makes sense if you think of migrations as refactoring at scale.” The implication: treat your refactor as a real migration project, not a cleanup sprint. That means real guardrails.

What you produce: a one-page document anyone on the team can read in 5 minutes that answers “what are the rules of this refactor.”

📋 Prompt to copy-paste:

I am about to run a design system refactor. Help me draft a one-page “rules of engagement” document covering:

1. NAMING CONVENTION , the exact rules for new token names (prefix, separator, scale, semantic vs literal). Include 5 examples of valid names and 5 examples of invalid names with reasons.

2. UNTOUCHABLE LIST , tokens that cannot change under any circumstances during this refactor. (I will provide the list.)

3. REVERSIBILITY MATRIX , for each category of change (rename / merge / deprecate / value change), state whether it can ship behind a feature flag, requires full deployment, or needs a coordinated release.

4. APPROVAL CHAIN , who signs off on the migration map, who reviews each PR, who owns final merge. (I will provide names/roles.)

5. DEFINITION OF DONE , concrete acceptance criteria. Visual regression passing. Zero hardcoded values added. Token usage above X% adoption. Documentation updated.

Output as a clean markdown document suitable for pasting into our team wiki.

Step 5 , Execute: run the migration (AI does the heavy lift)

This is the step everyone wants to skip to. With proper Steps 1–4 in place, it’s also the step that’s changed the most in the last 18 months.

For each token in your migration map, the AI agent’s job is mechanical:

  • Find every reference to the old token across the codebase
  • Replace it with the new token (or alias) per the migration map
  • Generate the changes as a reviewable PR
  • Flag any usage that doesn’t fit the migration rules for human attention

Claude scores 82.1% on SWE-bench Verified , the industry-standard benchmark for resolving real GitHub issues in large codebases. As of February 2026, Claude Code was authoring roughly 4% of all public GitHub commits , about 135,000 commits a day, with a single-day peak of 326,000. Codebase-scale refactoring with AI is no longer experimental. It’s production reality.

That said: do NOT let the AI execute autonomously across thousands of files.

The right pattern is scoped, reviewable batches. Migrate one token family at a time. Open a PR for each. Run tests on each. Merge each only after a human reviews the diff. Yes, this is slower than a single grand migration. It’s also the difference between a clean refactor and a production incident.

What you produce: a series of small, reviewable PRs that incrementally migrate the codebase, with full test coverage on each.

📋 Prompt to copy-paste:

You are executing a design system migration based on the approved migration map I am providing. Follow these strict rules:

1. SCOPE , process ONE token family per execution (e.g., all color-blue-* tokens together, then stop). Do not bundle multiple families in a single PR.

2. FOR EACH TOKEN IN SCOPE:

   – Find every reference across the codebase

   – Apply the migration action from the map (rename / alias / merge / deprecate)

   – Update the token definition file

   – Update any documentation that references the token

   – Run the existing test suite locally to confirm no regressions

3. OUTPUT , produce a single Pull Request with:

   – A clear PR title in this format: “refactor(tokens): migrate [family] per migration map row [X-Y]”

   – A PR description listing every file changed, every token migrated, and any edge cases encountered

   – Commit history broken into logical commits (definition changes / usage updates / docs)

4. HARD STOPS , refuse to proceed and ask for human input if:

   – A token in scope has more than 200 usages (flag for batched migration)

   – Migration would touch any file in the UNTOUCHABLE LIST

   – The action would create a circular alias

   – You encounter a usage pattern not covered by the migration map

5. REPORT , at the end, output a summary of what shipped, what was deferred, and what needs human review.

Begin with the first token family in the migration map and stop after producing the PR. Wait for human review before continuing to the next family.

Step 6 , Validate: test, lint, regress, and have a human review

For every PR, run the full validation stack:

  • Visual regression tests. Compare every screen pre- and post-migration. Flag any pixel-level differences. Tools like Applitools, Chromatic, and Percy do this well.
  • Linting. New token usage should pass your naming convention rules. Hardcoded values should fail the lint.
  • Type checking. Particularly important for TypeScript codebases with typed token references.
  • Smoke tests. Critical user flows should pass automated end-to-end testing.
  • Human visual QC. A designer who knows the system should look at every changed surface. AI cannot tell you that something “feels” wrong.

The recent piece on automating design system audits suggests prompts like: “Audit my prototype to find hardcoded values (colors, spacing, typography) that should use design tokens from our system.” That same approach works for validation , point the agent at the post-refactor codebase and ask it to flag anything that violates the rules.

What you produce: a clean test pass for every PR before merge, and a designer’s sign-off on visual changes.

📋 Prompt to copy-paste:

Validate the PR I am providing for a design system token migration. Run these checks and produce a structured validation report:

1. CONVENTION CHECK , every new or modified token name must match our naming convention. Flag any that don’t with file/line.

2. HARDCODED VALUE CHECK , scan the diff for any hardcoded hex codes, raw px values, or raw font sizes that were added (not just untouched). Flag each one as a regression.

3. ALIAS LOOP CHECK , confirm no token aliases to itself (directly or indirectly through another alias).

4. USAGE COMPLETENESS CHECK , for every renamed token in this PR, confirm zero remaining references to the OLD name anywhere in the codebase (outside of explicit deprecation comments).

5. BREAKING CHANGE SURFACE , list every component, screen, or route whose visual output could change because of these token changes. This becomes the visual QC checklist for the human reviewer.

6. ACCESSIBILITY SPOT CHECK , for color token changes, recalculate WCAG contrast ratios for the most common foreground/background pairings. Flag any pair that drops below AA.

Output: a markdown report with one section per check. Pass/fail for each. List of human-review items at the end.

Step 7 , Govern: version, document, and schedule the next audit

The refactor isn’t done when the migration ships. It’s done when you’ve built the infrastructure to prevent the same drift from accumulating again.

That means:

  • Semantic versioning on your token library (major, minor, patch). Every change ships with release notes. Parallel HQ recommends introducing this explicitly: “Deprecate old components gradually and provide migration paths… most teams don’t version tokens; adopting versioning prevents breaking changes.”
  • Updated documentation. Every new token, naming convention, and pattern decision is captured in your design system docs. Not in a Notion someone forgets about. In the same repo as the tokens themselves.
  • Linting in CI/CD. Hardcoded values should fail the build. Non-conformant token names should fail the build. The system enforces itself going forward.
  • A scheduled re-audit. Put it on the calendar. Every six months. Token sprawl is not a one-time problem.
  • Clear ownership. A named person or small team owns the system. They review proposed additions before they merge.

What you produce: a maintained, versioned, governed design system , and a calendar invite for the next audit.

📋 Prompt to copy-paste:

Help me set up governance infrastructure for our design system so the drift we just refactored doesn’t accumulate again. Generate the following:

1. SEMANTIC VERSION LOG TEMPLATE , a markdown template for tracking token library releases (major / minor / patch) with sections for: what changed, why, migration notes, deprecation timeline.

2. CONTRIBUTION GUIDELINES , a one-page doc covering: how to propose a new token, the review process, who approves additions, and the criteria for rejection (with examples).

3. CI/CD LINT RULES , generate the lint configuration (for Stylelint or ESLint, my preference) that:

   – Fails the build on hardcoded color, spacing, or font-size values

   – Flags use of deprecated tokens

   – Enforces our naming convention on any newly added tokens

   – Warns on tokens that have not been used in the last 90 days (drift indicator)

4. RE-AUDIT SCHEDULE , a recurring 6-month audit checklist that I can paste into our team calendar, including: what to inventory, what to flag, who runs it, and what the output looks like.

5. OWNERSHIP DOC , a short doc naming the design system owner(s), their responsibilities, escalation path, and how external contributors interact with them.

Output all five as separate markdown documents I can paste directly into our team wiki and repo.

What AI can and can’t do (honest answer)

After running this playbook a few times, here’s the honest division of labour:

AI is great at:

  • Crawling and inventorying the codebase
  • Identifying duplicates and near-duplicates
  • Generating migration maps from explicit rules
  • Executing mechanical code transformations across files
  • Producing reviewable PRs with proper commit hygiene
  • Running automated validation passes

AI is not great at:

  • Deciding the naming convention in the first place
  • Making strategic calls about which token is canonical
  • Understanding brand context that isn’t documented anywhere
  • Catching that something “feels” off visually
  • Owning the system longer-term

The pattern is clear. AI takes the mechanical pain off the human’s plate so the human can focus on judgment. That’s the whole game.

The Praxen piece on design tokens meeting agents puts the AI risk well: “Agents are powerful, but they’re also extremely confident liars if you let them be.” The fix is constraint , give the AI explicit rules, a whitelisted set of tokens it can use, and a strict review boundary it cannot cross unilaterally.

This is what we call governed velocity. Speed and an audit trail. Not vibe coding.

Common pitfalls

Three traps to avoid:

1. Refactoring without inventorying first. You’ll discover edge cases mid-migration that force you to start over. Always inventory first.

2. Letting the AI execute autonomously across thousands of files. Yes, it’s tempting. No, it’s not how production refactors work safely. Small batches, reviewable PRs, every time.

3. Skipping the governance step. Every refactor that doesn’t end with versioning + linting + scheduled re-audits will regenerate the same mess within 18 months. The refactor isn’t complete without it.

Where Oranje fits

We built The Oranje Co for the exact scenario this playbook describes design systems that need to evolve faster than enterprise governance traditionally allows.

The bet isn’t that AI replaces the refactor. It’s that AI, properly guard-railed, removes 60-70% of the manual tedium so design system teams can spend their time on the decisions that matter: strategy, naming, and judgment.

We’ve been running variants of this playbook on real client codebases. Token-by-token migration maps. AI-generated PRs landing inside the client’s own folder structure. Human QC built into the loop. Results that merge instead of triggering a refactoring tax.

Oranje is in beta now, with our enterprise launch coming soon. 🍊

If you’re a design lead or engineering lead carrying serious pattern debt and you’d like to be part of the early enterprise rollout, we’d love to hear from you.

Closing thought

Most design system content focuses on building a system from scratch. Almost nobody writes about the much messier reality: refactoring a system that’s already in production, has thousands of usages, and absolutely cannot break customer flows during the transition.

That’s where most enterprise teams actually live. And it’s the work that quietly determines whether your design system survives its third year.

The playbook above isn’t novel. The methodology has existed in pieces for years. What’s new in 2026 is that AI can finally take the mechanical 60% off your team’s plate, so the judgment-heavy 40% can get the attention it deserves.

Pattern debt isn’t permanent. It just needs a process. And maybe an accomplice.

Further reading

A curated list of the best resources to go deeper on each part of the playbook.

On design system audits

On design tokens specifically

On migrations at scale

On AI-assisted design system work

On governance & maintenance

On tooling


The Oranje Co is building infrastructure for the creative economy , closing the gap between design, system, and production code. Currently in beta, with enterprise launch coming soon. getoranje.com

RPS // Blogs // Components are cheap. Patterns are hard.

The next big problem in enterprise design systems almost nobody is talking about.

A client said something to me last week that I haven’t stopped thinking about.

“You’re solving the screen problem, great. But can you help us with our design system patterns? Our dashboards have the same filter behaving three different ways.”

That single sentence captures the part of the design systems story almost nobody is talking about right now.

Every conversation about AI in design is stuck on components. Generate me a button. Build me a screen. Spin up a card. And honestly , that part is mostly solved. Tools like v0, Stitch, Replit, Figma’s own AI features have all made it absurdly easy to produce a UI element that looks polished and works on first glance.

But components are the easy layer.

Patterns are the hard one.

And in 2026, the gap between “we have a beautiful component library” and “we ship a consistent product” has become the most expensive, least-discussed problem in enterprise design.

The filter story

Back to that client conversation.

Their main dashboard had three different sets of filters across three sections of the portal. One slid in from the right as a side panel. One opened as a modal. One expanded inline above the table. Same user task , filter a list of records , and three completely different muscle memories required.

Nobody on their team had designed it this way on purpose.

It happened the way it always happens in enterprises. Different squads. Different sprints. Different “we needed it shipped by Friday” moments. Each filter implementation was perfectly reasonable in isolation. Combined, they made the product feel like three different products.

Their component library was healthy. Their button looked the same everywhere. Their inputs were tokenized correctly. The components were not the problem.

The pattern was.

What’s the difference, actually?

The terms get used interchangeably, and that’s part of why the problem stays invisible. So let’s be precise.

A component is a reusable UI element. A button. An input. A dropdown. It’s a concrete thing, with specific styling and behavior, that you can drop into a screen. As UXPin puts it, “a component library is a collection of reusable, coded UI elements.”

A pattern is one level up. It’s a solution to a recurring problem. Filtering a list. Authenticating a user. Showing an empty state. Validating a form. Patterns describe how components combine to accomplish a task , every time that task shows up in your product.

The U.S. government’s CMS Design System defines it well: “A pattern is more than the sum of its parts. Patterns are solutions, whereas a component can be considered a UI chunk.”

Or to put it the way I find easiest to remember: components are the lego pieces. Patterns are the rules for what you can build with them, and how it should behave.

Why AI made components cheap

The current wave of AI design tools is genuinely impressive at the component layer. You can describe a button and get six variations. You can sketch a screen and get clean React code in seconds. The marginal cost of producing a UI element has collapsed.

Most of the design system industry has noticed. Zeroheight’s 2026 Design Systems Report found that AI adoption among design system practitioners jumped sharply year over year , but with one important caveat: the excitement is highest for “documentation generation and process automation,” not AI-generated design itself. Practitioners are pragmatic. They want AI to handle the repetitive stuff so they can focus on the harder problems.

Which is exactly the point. The repetitive stuff is the component layer.

The harder problems live one layer above.

Why patterns are still hard

So why hasn’t AI cracked patterns the way it cracked components?

Three reasons.

1. Patterns are organizational, not visual. A button is a visual artifact. A filter pattern is a decision , about how filtering should feel across your entire product. That decision involves UX research, product strategy, content tone, accessibility constraints, and an opinion about how your product wants users to feel. No general-purpose AI tool has access to any of that context. It can generate a filter UI. It can’t decide that filtering should always behave the same way across your seven dashboards.

2. Patterns are enforced, not generated. Components live in a library. Patterns live in every screen of your product, forever. That means the work isn’t producing the pattern once , it’s keeping the pattern consistent as the product grows, teams change, and edge cases multiply. As Ryda Rashid wrote in late 2025, “every design system has a silent killer: design drift. Not malicious. Not intentional. Just… human. Different teams move at different speeds. New product squads introduce ‘just one more exception.’ Engineers override styles to hit deadlines.”

That drift accumulates. Slowly. Invisibly.

3. Patterns are expensive to define well. Nathan Curtis, who has thought about this longer than almost anyone in the field, put it bluntly years ago: “Patterns are expensive. Composing patterns takes time and iteration, comparisons and conversations, whittling down to essential truths. That’s not quick and easy to do well.”

It still isn’t.

Pattern debt

Every enterprise product has it. Almost nobody schedules time to fix it.

Call it pattern debt.

It’s the parallel to technical debt , and just as costly. The difference is that technical debt is at least visible to engineers in code reviews. Pattern debt is mostly invisible until a user complains, an audit finds it, or a new designer joins your team and asks “wait, why does this work three different ways?”

Pattern debt accumulates from a thousand small, individually-defensible decisions:

  • A new squad ships a feature without checking the existing filter pattern
  • An engineer overrides a component to hit a deadline and never comes back to undo it
  • A designer interprets the same pattern differently than the last designer did
  • A token gets duplicated because two teams didn’t realize the other had defined it
  • An “exception” gets made for one screen and quietly becomes the new precedent

Each individual decision saves an hour. Across two years, the product becomes inconsistent in ways that take quarters of effort to undo.

The kicker: most enterprises don’t even know how much pattern debt they’re carrying, because nobody is measuring it.

What this actually costs

You don’t have to take my word that pattern inconsistency is expensive. The research is clear.

Adrenalin’s analysis of enterprise design systems cites Baymard Institute research showing that consistent interfaces improve conversion by up to 20%, while 68% of users abandon products that feel inconsistent or confusing. McKinsey data in the same piece estimates that streamlined design systems cut 30-40% of development costs through reduced duplication and technical debt.

Other research stacks on top:

  • Lucidpress found consistent brand presentation across platforms increases revenue by up to 23%
  • Stanford research has shown that 94% of users’ first impressions of a website are design-related , directly influencing trust
  • Forrester estimates UX improvements can lift conversion rates by up to 400% in some categories

None of these stats are talking about button styling. They’re talking about the experience of moving through your product. That experience is governed almost entirely by patterns.

The components might be perfect. If the filter pattern shifts between sections, the user doesn’t think “what a great button library.” They think “this product feels confusing.” And they leave.

What enforcing patterns actually requires

Solving pattern debt is harder than solving component debt because patterns sit at the intersection of design, code, and organizational behavior.

To enforce a pattern across an enterprise product, you typically need:

  1. A canonical definition of what the pattern is and when to use it
  2. Reusable assets (components configured to enact the pattern) that designers and engineers actually reach for
  3. Enforcement:  something that flags when a pattern is being violated, before it ships
  4. Maintenance: a way to update the pattern as the product evolves, without breaking the surfaces that already use it
  5. Buy-in across teams so the pattern is respected even when it slows a single squad down

Most enterprises do step 1 (sometimes), step 2 (partially), and skip steps 3-5 entirely.

This isn’t a failure of effort. It’s a failure of infrastructure. The tools we use today – Figma, Storybook, Notion docs, the design system Slack channel, were not built to enforce pattern consistency. They were built to make components accessible. Two different jobs.

Where we’re spending real time

This is the layer we’ve been working on at Oranje.

Not just generating screens. Not just producing components. The harder problem: codifying the patterns underneath a product, and keeping them consistent across the product as it grows.

The idea isn’t to replace your design system. It’s to make the system enforce itself, to close the gap between “we have a documented pattern” and “every surface of our product actually uses it.”

Oranje is in beta right now, with our enterprise launch coming soon. 🍊

If you’re a design lead carrying serious pattern debt and you’d like to be part of the early enterprise rollout, we’d love to hear from you.

The honest closing thought

Most design system conversations in 2026 are still happening at the wrong altitude. The industry keeps celebrating faster components when the real cost , the part that actually shapes whether your product feels coherent , is happening one layer above.

If you’re a design lead, here’s the honest question: when did you last audit pattern consistency across your own product? Not components. Not tokens. Patterns.

If the answer is “I’m not sure” or “we don’t really have a process for that,” you’re not alone. Most enterprises don’t.

That’s the gap.

That’s the work.

Further reading

If you want to go deeper on the components-vs-patterns distinction and the state of design systems in 2026:

The Oranje Co is building infrastructure for the creative economy , closing the gap between design, system, and production code. getoranje.com

RPS // Blogs // AI as design thinking partner: the shift that changes everything

The most consequential change in how design teams use AI isn’t about generating mockups faster. It’s about thinking better. Across every major design publication and industry survey from 2024 to 2026, a clear consensus has emerged: AI’s greatest value to designers lies in ideation, critique, research synthesis, and strategic reasoning, not in producing visual assets. The data backs this up decisively. Foundation Capital’s 2025 survey of 400+ designers found that 84% use AI during exploration phases (research, ideation, strategy) versus just 39% during delivery. Figma’s own research shows only 33% of designers use AI to generate design assets, while 40% use it for data analysis and 38% for desk research. The tools haven’t caught up to the hype. Nielsen Norman Group’s May 2025 review found AI design tools still produce generic results with poor information hierarchy. But the thinking-partner use case is already delivering real returns. For design leads managing cross-functional teams in fintech and enterprise SaaS, this reframing isn’t academic. It changes how you staff projects, run critiques, synthesize research, and communicate with stakeholders.

From “enthusiastic intern” to outcome orchestrator

The design industry has converged on a spectrum of mental models for AI’s role, and understanding where your team sits on this spectrum matters more than which tools you’re using. Nielsen Norman Group, still the most cited authority in UX, has moved from their 2024 “AI as intern” metaphor to a far more ambitious 2026 framework called “outcome-oriented design.” In this model, designers stop crafting individual interfaces and instead define adaptive frameworks that respond to individual user goals. As Kate Moran and Sarah Gibbons wrote in March 2026, designers shift “from designing for the average to designing for the individual,” setting guardrails and constraints rather than pixel-level specifications.

John Maeda, now Microsoft’s CVP of Engineering for CoreAI Design & Research, frames this through his “UX → AX” (Agent Experience) paradigm: interfaces designed not just for humans but for AI agents that act on their behalf. His 2025 SXSW keynote outlined a taxonomy of collaboration spaces (chat, document, table, canvas) where human-AI partnership takes different forms. IDEO, meanwhile, has built an entire certificate program around “AI × Design Thinking,” with Managing Director Jenna Fizel positioning AI explicitly as a brainstorming partner.

But the most useful framing for practitioners comes from Dave Goyal of Think AI Corp, who distinguishes between three levels. AI as “tool” executes commands and generates outputs. AI as “copilot” assists within workflows and suggests completions, what Goyal calls “a glorified autocomplete engine.” AI as “co-thinker” engages in bidirectional dialogue, challenges assumptions, and surfaces blind spots. The difference, Goyal argues, “is not in capability. It is in design intent.” Paul Boag of Smashing Magazine operationalized this most concretely: he creates Claude and ChatGPT projects loaded with client research, personas, survey results, and documentation, then uses the AI as “a co-worker who never gets tired and has a perfect memory.” Not to generate designs, but to challenge his thinking, review his work, and ask hard questions.

The data tells a more nuanced story than the hype

The adoption numbers are impressive on the surface but reveal important fault lines when you dig deeper. Figma’s State of the Designer 2026 (906 respondents across five regions) found that 72% of designers now use generative AI tools and 98% increased their usage over the past year. Adobe’s October 2025 survey of creative professionals reported that 99% use generative AI in some capacity, with 97% using it across multiple workflow stages. Yet these headline numbers mask a critical insight: designers are far less satisfied with AI than developers. Figma’s 2025 AI Report (2,500 users across seven countries) found developer satisfaction with AI tools at 82% versus just 69% for designers. Only 32% of all respondents said they could rely on AI output, and only 54% of designers said AI improves the quality of their work.

The Foundation Capital/Designer Fund survey adds crucial context. While 89% of designers report improved workflows, the adoption curve follows a clear pattern: heavy use in early-phase exploration, moderate use during creation, and minimal use in delivery. 96% of designers learned AI entirely through self-teaching, through side projects, peer tips, and social media. Formal training barely exists. Startups lead adoption, with early-stage designers more than twice as likely to fully integrate AI compared to enterprise teams. The “last 40% problem” persists: AI gets designs roughly 60% of the way there, but the nuance, polish, and judgment that distinguish good work from great work still require human hands.

The sentiment data is perhaps most telling. Figma’s 2026 survey found designers split almost perfectly into thirds on whether design has gotten better (36%), worse (35%), or stayed the same (29%) since AI’s rise. NNGroup declared 2026 “the year of AI fatigue.” Yet 82% of hiring managers said their company’s need for designers has increased or held steady, and 56% specifically report increasing demand for senior designers, those who bring the judgment and strategic thinking that AI cannot replicate.

Six ways design teams are using AI to think, not produce

The most compelling evidence for AI as thinking partner comes from practitioners documenting specific workflows. These fall into six categories that map directly to how agency design leads structure their work.

For brainstorming and ideation, Eleken, a SaaS design agency, has replaced traditional brainstorming’s awkward silence with a structured approach: AI generates 20+ possible solutions to a design problem, each team member selects 2-3 concepts that intrigue them, and those become starting points for deeper human exploration. IDEO U teaches a similar pattern: let AI generate divergent ideas, then use human creativity to “build on, combine, or completely flip these ideas on their head.” The key nuance, supported by a CHI 2024 study, is that AI image generators during ideation can actually increase design fixation and reduce originality. Text-based ideation with LLMs avoids this trap by keeping ideas abstract and malleable.

For design critique, Nicole Riemer of ROSE Digital published the most detailed framework. Her five-step process uses role prompting to stress-test features from multiple perspectives simultaneously: a UX researcher conducting a usability audit, an accessibility specialist evaluating WCAG compliance, a behavioral economist analyzing cognitive biases, and stakeholder perspectives including customer support leads asking “What could go wrong that would flood your queue?” The critical insight: never ask AI “Would you use this feature?” because it will always say yes. Instead, ask open-ended exploratory questions grounded in real persona data. Markiian Bobyliak of Supermega Design takes this further by connecting Claude Code directly to his project folder via MCP, giving AI access to Figma files, research documents, and stakeholder notes so it can review onboarding flows against actual user interviews and documented requirements.

For user research synthesis, the most rigorous approach comes from Great Question’s six-step pipeline: transcribe, summarize each segment, generate codes, apply codes to summaries, group into themes, and transform into actionable insights. The crucial principle is breaking complex analysis into discrete steps with clear inputs and outputs. UX researcher Dominika Mazur’s side-by-side comparison of human versus AI analysis found ChatGPT “reliable in coding and synthesizing” with a particular strength in processing speed, while human researchers excelled at “generating non-obvious insights.”

For stakeholder communication, Bobyliak’s workflow stands out: after finishing designs, he instructs Claude to create documentation tailored for different audiences from the same underlying information. Technical specs for developers, design rationale for future designers, business-goal alignment for product managers, and presentation content for clients that pulls real quotes from user interviews. Sandra Herz, an impact communication consultant, uses a similar approach, creating detailed stakeholder personas for critical decision-makers and then using AI to adapt pitches for each audience.

For strategic thinking, the emerging pattern is multi-model triangulation. Elizabeta Kuzevska of Revenue Experts AI runs the same competitive analysis prompt across ChatGPT, Claude, Gemini, and Perplexity simultaneously, keeps responses separate, then creates a synthesis prompt to identify agreements, contradictions, and unique insights. If you’re using one AI model for competitive intelligence, you’re building strategy on one model’s biased perspective.

For problem framing, the most structured approach is the C.S.I.R. framework (Context, Specific Info, Intent, Response Format) from AiforPro.net, which includes specific prompt patterns for root-cause mapping via the 5 Whys, reframing How Might We questions, and clustering problems by journey stage. Designer Erin Wilson demonstrated the power of reframing by comparing solutions generated from a conventional problem statement about climate change versus a reframed “How might we help people experience the impact of their carbon footprint?” The conventional framing produced conventional solutions while the reframed version generated innovative concepts like interactive VR simulators and personalized carbon impact stories.

Exercises that work on Monday morning

The gap between understanding AI-as-thinking-partner conceptually and using it effectively in practice is where most design teams stall. These five exercises, drawn from documented practitioner workflows, require no special setup beyond access to Claude or ChatGPT.

  • Rubber duck design review: Prompt AI with “Act as my rubber duck. I’ll talk through my design decisions and I need you to help clarify my thinking by asking questions and reflecting back what I say, without giving direct answers.” Walk through your latest design decision. The forced articulation reveals gaps in reasoning and prepares you for stakeholder presentations.
  • Multi-perspective stress test: Take your current feature design and run it through Nicole Riemer’s role-prompting framework. Feed the AI real persona data (not assumptions) and ask it to respond as a UX researcher, accessibility specialist, behavioral economist, and customer support lead, each evaluating the same feature from their perspective.
  • Edge case scenario generation: Describe your feature’s happy path and prompt: “Generate 10 contextual edge cases where real human behavior deviates from this path. Consider users under stress, users with malicious intent, users with disabilities, and users in crisis situations.” This exercise directly addresses the blind spots that cause major UX incidents.
  • Design rationale document creation: After making a key design decision, prompt AI with the decision context and ask it to draft a rationale document covering “why it matters,” a decision summary, supporting evidence, alternatives considered, and trade-offs accepted. Then create versions tailored for your engineering lead, your product manager, and your client.
  • Competitive “what if” analysis: Feed AI your product’s current positioning alongside competitor data and ask: “What if our primary competitor launched [specific feature] tomorrow? How should our design strategy adapt? What assumptions in our current roadmap become invalid?”

Building a persistent “design copilot” amplifies all of these exercises. Avani of ADPList published a detailed guide recommending designers treat this like onboarding a new team member: write a “hiring brief” defining the AI’s personality and role, upload brand guidelines, design system documentation, accessibility standards, past research, and product strategy, then use the prompt “Please review what I’ve shared and ask me sequential questions to help complete your understanding of our brand, design system, product, and design culture.” Once onboarded, this persistent context transforms every subsequent interaction from a cold start into a conversation with a knowledgeable colleague.

What this means for design leadership in 2026

The most important finding across this research isn’t any single statistic or framework. It’s the emerging consensus that AI’s impact on design is primarily cognitive, not productive. The teams gaining the most advantage aren’t the ones generating assets faster; they’re the ones thinking more rigorously, considering more perspectives, and communicating design rationale more effectively. NNGroup’s insight crystallizes it: the skills that matter now are “curated taste, research-informed contextual understanding, critical thinking, and careful judgment,” precisely the skills that define senior design leadership.

For design leads at agencies working across fintech and enterprise SaaS, this has immediate structural implications. The “last 40% problem” means AI won’t replace your production designers anytime soon, but the exploration-heavy adoption pattern (84% in exploration versus 39% in delivery) suggests your biggest ROI comes from integrating AI into discovery, research synthesis, and strategic framing. These are the phases where agency teams often face the tightest time constraints and where client value is highest. The multi-audience communication capability alone, translating the same design rationale into developer specs, PM strategy docs, and client presentations, addresses one of the most persistent bottlenecks in cross-functional agency work.

The counter-narrative matters too. The Psychology Today research finding that “while generative AI enhances individual creativity, it simultaneously narrows collective diversity” is a genuine risk for teams that over-rely on AI for ideation without maintaining diverse human perspectives. And the CHI 2024 finding about AI-assisted ideation increasing design fixation suggests that how you integrate AI into brainstorming matters as much as whether you do. The practitioners getting the best results treat AI as a sparring partner that expands their thinking, not a shortcut that replaces it. That distinction, between amplification and automation, will define which design teams thrive and which find themselves, as NN Group warned, already replaceable.

RPS // Blogs // Designing under real constraints

In theory, design is about creativity. In reality, it’s about navigating constraints. Tight timelines. Skipped processes. Unhappy stakeholders. Technical limits. AI inconsistencies. The real skill of a lead designer isn’t avoiding constraints, it’s designing through them.

“I am a UI UX Principal Designer, and I have all my life worked as a Designer, from Senior Designer, to Lead Designer, to Design Manager. But let me tell you, these constraints remain the exact same no matter your title. Here is what that actually looks like in practice”


1. Tight Timelines

  • The Constraint: 
    We often work with a lean team, and the client always works with tight timelines. They want the launch of features which are complex in just one sprint.
  • The Impact:
    Less time for validation means a higher risk of misalignment, and design becomes execution-focused instead of insight-driven.
  • How I Managed It: 
    The solution which we decided was to simply reduce the scope with respect to the core user pain points. We focused purely on the primary user journey for the sprint, knowing the rest of the edge cases can be updated later. When time shrinks, reduce scope, not clarity.

2. Skipped Process

  • The Constraint: 
    In one of my projects on a pharmacy management system, the client wanted me to deliver screens without the UX process. They just wanted us to be like AI Screen generators.
  • The Impact:
    When you skip the process, design becomes assumption-based. The client would inevitably look at the output and say that our UX was not good.
  • How I Managed It:
    What we did was, we involved the client in a workshop along with us and did a comprehensive UX activity to understand the briefs and problems much more. Involving the client made him so happy that he said, “Let’s do more of such activities for problem-solving.” With time, our processes were validated with the best UX results. Even when the process is skipped initially, you can still protect strategic thinking.

3. The “Unhappy with Everything” Stakeholder

  • The Constraint: 
    Handling clients who just say your design does not look good. The client gives vague inputs like spacing here is wrong, spelling is wrong, visually doesn’t look better.
  • The Impact:
    Morale drops, confidence shakes, and the conversation becomes emotional instead of objective.
  • How I Managed It: 
    We came up with an approach where we started giving the client options and clarity regarding the different styles. We made the client choose the design rather than giving one option for the client to just find problems with. Tying those options to specific business outcomes reframed the discussion overnight. Feedback became constructive.

4. Technology Constraints

  • The Constraint: 
    We consistently work on projects where development frameworks, responsiveness, and complex interactions become problems. Development flags that the design isn’t feasible with the current stack.
  • The Impact:
    Ambitious features get simplified, and tension rises between design and engineering.
  • How I Managed It: 
    A good PM and a communicator can solve this very well. Instead of pushing back blindly, sit down with engineering to walk through the technical limitations. Redesign the interaction to fit the framework smoothly—like using progressive disclosure instead of heavy animations. Sometimes constraints don’t weaken design; they refine it.

5. Animation Constraints

  • The Constraint:
    No time for motion design. No bandwidth for advanced animation implementation.
  • The Impact:
    The product feels static. Feedback loops feel mechanical instead of intuitive.

  • How i managed it (real life scenario) :
    In one project, we planned micro-interactions across the dashboard — hover states, smooth card transitions, animated graphs. The engineering timeline got compressed.

nstead of removing all motion, I prioritized three moments:

  • Button feedback
  • Success confirmation
  • Loading states

We documented exact easing, duration, and purpose not decorative animation.

Even minimal motion improved perceived performance and usability.

Animation doesn’t need to be dramatic.
It needs to be meaningful.


6. AI as a Constraint

  • The Constraint:
    AI tools generate layouts instantly, but spacing is inconsistent, logic is flawed, and components don’t align with the system.
  • The Impact:
    Speed increases, but design quality suffers. Junior designers may over-trust AI output.
  • How I Managed It:
    Instead of discarding AI entirely or blindly trusting it, I built an AI workflow to validate its output:
  • Grid validation
  • Token consistency
  • Accessibility checks
  • Logical user flow
    AI helps me explore quickly, but it never finalizes decisions. Judgment still belongs to the designer.

Final Reflection

Designing under constraints is not a phase; it is part of the job. Deadlines, uncertainty, trade-offs—these aren’t obstacles. They’re part of the craft.

The difference between average and exceptional designers isn’t creativity alone. It’s the ability to stay composed, strategic, and outcome-focused even when conditions aren’t ideal. That’s what real product design looks like.





RPS // Blogs // UX Audit Checklist – The 10-Point Framework That Exposes Flaws in Minutes
UX Audit Checklist - The 10-Point Framework That Exposes Flaws in Minutes

Let’s talk about the “A-word.”

Audit.

Just saying it out loud makes people want to take a nap. It sounds expensive. It sounds corporate. It sounds like a guy in a suit charging you $500 an hour to tell you that your font size is too small or that your logo is slightly off-center.

In the design world, we treat audits like root canals: painful, expensive, and something to be avoided until the patient is screaming.

But you don’t need a consultant to tell you your website sucks. You likely already know it. You feel it in your gut when you watch a user struggle with a form you built. You see it in the analytics where the drop-off rate looks like a cliff edge. You just don’t know where it sucks specifically.

Most UX audits are massive overkill.

Agencies love to deliver 100-page PDFs filled with jargon like “cognitive friction” and “information scent.” Those documents usually end up in a folder called “Old Stuff,” never to be read again. You don’t need a thesis. You don’t need a philosophy lecture. You need a 10-point checklist that exposes the ugly truth in under 20 minutes.

The “Common Sense” Framework

Most usability issues stem from a violation of basic heuristics—fancy words for “stuff Jakob Nielsen figured out 30 years ago.” These aren’t trends; they are the laws of physics for the web.

If you want to fix your product, stop looking at analytics for a second and look at the interface. Analytics tell you what is happening (they are leaving), but an audit tells you why.

Here is the framework. It’s not about perfection; it’s about triage. You are looking for the “bleeding neck” problems—the ones causing users to rage-quit—before you worry about the “paper cuts.”

1. Visibility of System Status (Don’t Leave Me Hanging)

Does the user know what’s going on? Is the button loading? Did the save work?
The Context: Silence is the enemy of UX. If a user clicks “Buy” and nothing happens for 3 seconds, they assume it’s broken. They will click again. They will double-charge their card. They will hate you.
The Check: Does every action have a reaction? Spinners, progress bars, and “Success” checkmarks aren’t decoration; they are reassurance.

2. Match Between System and Real World (Speak Human)

Are you speaking “Developer” or “Human“?
The Context: Users don’t know your internal terminology. They shouldn’t have to.
The Check: Look for jargon. Instead of “System Error 404,” try “We couldn’t find that page.” Instead of “Execute Protocol,” try “Run Backup.” If your grandmother wouldn’t understand the label, rewrite it.

3. User Control and Freedom (The Emergency Exit)

Is there an “Undo“? Can they get out of a flow easily?
The Context: Users make mistakes. They click the wrong link. They change their mind. If they feel trapped in a flow, they panic.
The Check: Ensure there is always a “Back,” “Cancel,” or “Home” button. Never trap a user in a modal or a multi-step form without a way out.

4. Consistency & Standards (Don’t Gaslight Me)

Does your “Submit” button say “Submit” on one page and “Save” on the next? Does the logo go to the homepage on the desktop app but not the mobile site?
The Context: Inconsistency makes users feel stupid. They learn a rule on page 1, and you break it on page 2. That creates cognitive friction.
The Check: Audit your terminology and placement. Pick a style and stick to it religiously.

5. Error Prevention (The Best Error is the One That Never Happens)

Don’t just fix errors; design them out of existence.
The Context: Error messages are a failure of design. Why did you let the user click that button if the form was empty?
The Check: Gray out invalid options. Disable the “Submit” button until the password is strong enough. Guide the user before they stumble.

6. Recognition Rather Than Recall (Don’t Make Me Think)

Don’t make the user memorize stuff from page 1 to page 2.
The Context: The human brain is lazy. It doesn’t want to hold information.
The Check: Are menu options clearly visible? Do form fields show examples (e.g., “[email protected]”) inside the box so the user knows the format? Make the options visible, not hidden in memory.

7. Flexibility and Efficiency of Use (Speed for Pros)

Can a power user speed through the task?
The Context: New users need guidance; experts need shortcuts.
The Check: Do you have “Skip” buttons for onboarding? Do you support keyboard shortcuts (Tab, Enter) for forms? Don’t slow down the experts just to hand-hold the newbies.

8. Aesthetic and Minimalist Design (Less is More)

Every extra element is competing for attention.
The Context: If everything is bold, nothing is bold. If you have three “Call to Action” buttons, you have zero.
The Check: Remove, remove, remove. If a paragraph doesn’t help the user achieve their goal, delete it. If a button isn’t critical, hide it.

9. Help Users Recognize, Diagnose, and Recover from Errors (Be Nice)

When things break, explain exactly how to fix them.
The Context: “Invalid Input” is useless. “Password must contain a symbol” is helpful.
The Check: Read your error messages. Are they blaming the user (“Illegal operation”) or helping them? Use plain English and highlight the specific field that needs fixing.

10. Help and Documentation (The Last Resort)

Ideally, the design is so good you don’t need a manual. But if you do…
The Context: Sometimes things are complex.
The Check: Is your help searchable? Is it context-aware (a help button right next to the complex feature)? Don’t bury the “Contact Support” link five levels deep.

How to Run the Audit (The “Fresh Eyes” Protocol)

As the folks at Eleken point out, a structured approach to reviewing your product against standard usability heuristics is the fastest way to spot those “tiny imperfections” that ruin the user experience.

But you can’t do it alone. You know where the bodies are buried. You know why that button is weirdly placed (because of a legacy API from 2019). Your users don’t care.

  1. Print the Checklist: Physical paper helps. It feels like a detective’s notebook.
  2. The “Jerk” Test: Go through your product and try to break it. Click randomly. Leave fields empty. Type gibberish.
  3. The “Mom” Test: Watch someone who isn’t in tech try to use your site. Don’t help them. Just watch where they pause.

Downloadable Asset

We’ve turned the heavy theory into a lightweight tool. Grab our “Is This Trash?” UX Audit Checklist. It’s a single-page PDF that walks you through the 10 critical heuristics listed above. Print it out, tape it to your monitor, and go to town.
[📥 Download the “Is This Trash?” Checklist]

FAQs

Q: Can I audit my own design?
A: You can try, but you’re blind to your own children’s flaws. You know why you built that confusing button (it seemed like a good idea at 2 AM). Your users don’t. Get a friend to do the checklist.

Q: What if I fail the audit?
A: You will fail the audit. Everyone fails the first audit. That’s the point. If you passed, you weren’t looking hard enough. Now fix it.

Q: Is a checklist better than user testing?
A: No. User testing is king. But a checklist is free and takes 10 minutes. Do the checklist first to fix the obvious, stupid stuff before you pay real humans to test it. Save your money for the complex problems.

Also Read: UX Design Patterns – Why Your “Unique” Design Is Hurting Your Users

RPS // Blogs // UX Design Patterns – Why Your “Unique” Design Is Hurting Your Users
UX Design Patterns - Why Your "Unique" Design Is Hurting Your Users

We all want to be the artist. The visionary. The one who reinvents the wheel.

We look at sites like Awwwards or Dribbble and see interfaces that float, glide, and defy gravity. We see elements that don’t look like buttons but feel like portals. We think, “If I build that, I will be famous.”

But in UX design, reinventing the wheel is usually just a fancy way of saying “confusing the hell out of your users.”

There is a dangerous myth in our industry that “unique” equals “good.” Agencies and junior designers alike often chase the Dribbble aesthetic—interfaces that look like sci-fi movie props but function about as well as a chocolate teapot. They build portfolios to impress other designers, forgetting that real users aren’t looking for art; they are looking to get a job done.

If your user has to learn how to use your interface, you have failed.

The Tyranny of Learning Curves

Users bring with them a “mental model“—a set of expectations based on every other app, site, and tool they’ve ever used. They know that a “hamburger menu” hides navigation. They know that a magnifying glass means search. They know that a trash can deletes things.

This isn’t laziness; it’s efficiency. The human brain is an energy-conserving machine. It loves patterns because patterns require less processing power.

This is known as Jakob’s Law: Users spend most of their time on other sites.

When you decide that your “Close” button should be a rotating hexagon in the bottom left corner instead of an “X” in the top right, you aren’t being creative. You’re being selfish. You are forcing the user to burn cognitive calories just to figure out how to leave the page. You are disrupting the flow they have established over thousands of hours of internet usage.

Every time a user pauses to ask, “Wait, where is the menu?” you are extracting a “mental tax.” If the tax gets too high, they close the tab and go to a competitor who respects their time.

The “Selfish Designer” Syndrome

Why do we break patterns? Usually, it’s ego. We want our work to stand out. We fear that if we use a standard left-sidebar navigation, our app will look “generic.”

Usability is invisible.

When a design works perfectly, the user doesn’t notice the design; they notice the task getting easier. If your design is loud, flashy, and confusing, the user notices you. And in B2B SaaS or e-commerce, the user doesn’t want to notice the designer. They want to pay their invoice, book their flight, or send their email.

The best design is the design that gets out of the way.

When to Use Patterns (and When to Break Them)

Does this mean you should copy-paste Bootstrap and call it a day? No. That’s laziness, not design. But you should use established UX design patterns as your foundation. You should only break the rules if you have a solution that is objectively 10x better than the standard.

Until then, stick to the script:

  • Navigation: Stick to standard layouts (top bar, left sidebar). Users shouldn’t need a map to find the “Home” button. If you hide your navigation inside a gesture-based mystery menu, you are playing a game of hide-and-seek that your user didn’t sign up for.
  • Input Forms: Don’t reinvent the radio button or the checkbox. These patterns exist because they work. We’ve all filled out thousands of forms. Don’t make us re-learn how to select “Male/Female/Other” or how to check a box.
  • Feedback: When something loads, show a spinner. When something saves, show a checkmark. Don’t invent a new language of “success.” If your error message is a cryptic riddle, you have failed.

“The usage of UX design patterns in your design process promotes creating usable and high-convertive websites… we know it from our experience.” — Eleken

Skeleton vs. Skin: How to Be Unique Without Being Confusing

This is the part where designers panic. “If I use common patterns, my app will look exactly like my competitor’s!”

False. This is where the distinction between Skeleton and Skin comes in.

  • The Skeleton: This is the structure. The placement of the navigation, the layout of the form fields, the position of the primary CTA. This should be standard. This should be boring.
  • The Skin: This is the visual design. The typography, the color palette, the iconography, the micro-interactions, the copywriting. This is where you can be as unique as you want.

You can have the most boring, standard left-sidebar layout in the world, but if you pair it with bold illustration, witty micro-copy, and a vibrant color palette, your brand will shine through. You can be distinct without being difficult.

Use a pattern library. There are tons of them (like GoodUI or UI Patterns) that offer battle-tested solutions based on A/B testing. These aren’t “crutches”; they are cheat codes for usability. They free up your brain power to solve the actual hard problems of the product, rather than wasting time deciding if your “Login” button should be oval or square.

Be Boring to Be Brave

Real creativity in UX isn’t making a button look like a banana. It’s solving a complex problem so seamlessly that the user never notices the design at all.

It takes guts to say, “We’re going to use a standard tab bar because it’s what our users expect.” It takes confidence to know that your product’s value lies in its utility, not in its novelty.

So, go ahead. Be boring. Your users will thank you for it. And by “thank you,” I mean they will actually use your product instead of rage-quitting.

Downloadable Asset

We’ve compiled a “Don’t Be Weird” Pattern Library. It’s a collection of the most effective, standard UI patterns for navigation, forms, and data tables that you can drop into your project to ensure users feel instantly at home.
[📥 Download the Pattern Library]

FAQs

Q: But what if my brand is ‘quirky’ and ‘different’?
A: Your brand voice can be quirky. Your navigation should be predictable. Don’t make me solve a riddle to find the “Login” button. You can be a comedian without hiding the exit sign.

Q: Are carousels (sliders) a safe pattern?
A: Lord, no. Carousels are often terrible for UX. They hide content, they auto-scroll when you’re trying to read, and mobile users hate swiping them. Only use them if you hate conversion rates.

Q: If I use standard patterns, won’t my site look generic?
A: Customizing the skin (typography, color, spacing) allows for branding without breaking the skeleton (usability). Don’t break the skeleton. A skeleton with a broken arm doesn’t look “edgy”; it looks like it needs a doctor.

Q: What is the one time I should break a pattern?
A: Only when the existing pattern is fundamentally broken for your specific use case. But be prepared for the learning curve. And test it. If your users fail, you were wrong. Go back to the standard.

Also Read: Profile Page Design – The Underrated Conversion Goldmine You’re Ignoring

RPS // Blogs // Profile Page Design – The Underrated Conversion Goldmine You’re Ignoring
Profile Page Design: The Underrated Conversion Goldmine You’re Ignoring

Let’s be honest. When was the last time you got excited about a “Settings” page?

Exactly. Never.

In the design world, the profile or settings page is the digital equivalent of the utility closet. It’s where we shove the brooms, the mismatched Tupperware, and the holiday decorations. As long as the door closes and the clutter is hidden, we’re happy. We prioritize the landing page, the dashboard, and the analytics graphs. We treat the profile page like a tax form, a necessary evil.

Your profile page is a retention killer.

We spend months agonizing over landing page hero images and CTA button colors. But the moment a user signs up, where do they go to set up their account? The profile page. If that experience is cluttered, confusing, or ugly, you’ve just poured gasoline on your churn rate.

You can have the sexiest onboarding flow in the world, but if the user feels lost the second they try to upload an avatar or change their password, they’re gone. The “First Time User Experience” doesn’t end at the signup screen; it ends when the user successfully customizes their space.

Why “Boring” Pages Matter (The Psychology of Ownership)

A profile page isn’t just a data dump; it’s a user’s personal space within your product. It’s the only part of the app that truly belongs to them. In a sea of charts, graphs, and other people’s data, the profile page is the only mirror.

If you treat it like an afterthought—hiding it behind a vague gear icon or making it look like a 1990s database form—you are subtly telling the user that they are an afterthought. You are telling them that their personal comfort is secondary to the system’s efficiency.

This creates a disconnect. In SaaS, specifically, trust is currency. If a user feels they don’t have control over their own identity (can they change their name? can they delete their credit card?), they subconsciously stop trusting the platform with their work.

According to insights from top agencies like Eleken, a well-structured profile page isn’t about looking cool; it’s about information hierarchy. You need to separate the “critical” (email, password, billing) from the “nice-to-have” (newsletter preferences, dark mode toggle, social links). This distinction reduces cognitive load. A user shouldn’t have to scan 50 options just to figure out how to log out.

How to Stop the Clutter

The biggest mistake in profile page UI is trying to show everything at once. We’ve seen massive enterprise tools where the settings page is a literal wall of text—300 form fields with no visual break. That is not a page; that is a resignation letter.

Here is how to fix it:

1. Group the Logic (Don’t Mix “Danger” with “Delight”)

Don’t put “Delete Account” next to “Change Profile Picture.” That’s anxiety-inducing. Group things by intent: Identity (photo, name, bio), Security (password, 2FA), and Notifications. Keep the destructive actions (Delete Account, Downgrade Plan) in a separate, clearly marked “Danger Zone” or bottom of the page. This gives the user psychological safety while navigating.

2. Visual Hierarchy is King

The user’s name and photo should be the stars of the show. Give them real estate. The billing info should be visible but not screaming for attention. Use whitespace aggressively. If a section looks dense, users assume it will be difficult to use.

3. Empty States are Marketing

If a user hasn’t filled out their bio yet, don’t just show empty lines or a gray placeholder. That’s a wasted opportunity. Use that space to teach them the value of the feature. instead of a blank box, try: “Add a bio so teammates know who you are” or “Upload a logo to appear on your invoices.”

“The page that belongs to users… Most profile pages don’t make headlines… But open any app you’ve used, and chances are you’ll find your fingerprints all over that little corner.”Iryna Parashchenko, Eleken

4. Don’t Forget Mobile

This is where most profile pages die. A layout that looks clean on a 27-inch monitor becomes a thumb-twisting nightmare on an iPhone. On mobile, complex forms should be broken into bite-sized steps or collapsible accordions. If you are forcing a user to pinch-and-zoom just to update their phone number, you have failed mobile UX 101.

The “Invisible” Design Goal

The best profile pages are the ones you don’t notice. They feel obvious. They feel like the app was built specifically for that one user. When the design is “invisible,” the user feels a sense of agency and competence. They feel smart because they didn’t have to hunt for anything. And when a user feels smart, they stay.

FAQs

Q: Can I put a link to my design portfolio in the user’s profile for them?
A: You can try, but they will likely change it to a link to their cat’s Instagram. Prioritize their content, not yours.

Q: Is dark mode mandatory for settings?
A: Only if you want users to like you. Yes, it’s mandatory. Blinding white settings at 2 AM is a crime against eyes.

Q: How many tabs is too many tabs?
A: If you need a compass to navigate your settings page, you have failed. Stick to three or four max. Group the rest under “Advanced.”

Q: Should I hide the “Delete Account” button to reduce churn?
A: Never. Hiding it makes you look shady and desperate. Make it accessible, but ask for confirmation. If they really want to leave, a hidden button won’t stop them, just make them angrier.

Also Read: Apple’s Cross-Device UX: How Continuity & Handoff Drive 800M+ Active Users

RPS // Blogs // Apple’s Cross-Device UX: How Continuity & Handoff Drive 800M+ Active Users
Apple's Cross-Device UX: How Continuity & Handoff Drive 800M+ Active Users

Explore Apple’s ecosystem UX design: Handoff, Continuity, and iCloud sync. Learn how seamless device integration increases user lifetime value.

The smartphone era promised liberation—complete access to your digital life, anywhere, anytime. Yet by 2012, a new problem emerged. People didn’t use just one device anymore. They used phones, tablets, laptops, and watches. The friction wasn’t in using individual devices; it was in moving between them. Start composing an email on your iPhone during a commute. Arrive at your desk. Want to finish on your Mac? You’d either send it to yourself, manually copy-paste the text, or restart completely. This fragmentation frustrated power users and demonstrated a critical insight: the future wasn’t about individual devices—it was about seamless experiences across multiple devices.

Apple recognized this wasn’t just a usability problem; it was a competitive opportunity. Samsung offered individual devices. Google distributed them across Android. But Apple owned both hardware and software, meaning they could engineer experiences impossible for competitors. If Apple could make switching between devices feel native and invisible, users would stay locked into the ecosystem not through artificial restrictions, but through genuine convenience. This became the foundation for Apple’s Continuity features—a suite of integrated experiences that transformed the ecosystem from a collection of products into a unified system.

How to Set Up Continuity & Handoff Between Your Mac & iPhone
How to Set Up Continuity & Handoff Between Your Mac & iPhone

The core innovation was Handoff, introduced with iOS 8 and OS X Yosemite in 2014. The feature allows users to start a task on one device and seamlessly continue on another. Begin drafting a document on your iPad during a meeting. Return to your Mac. Your exact location in that document appears in the Dock—just click it and you’re back where you left off, with full context restored. This sounds simple, but the engineering is profound. Apple had to synchronize app state across devices in real-time, handle network interruptions gracefully, ensure security across device transitions, and design UI that made the feature discoverable without cluttering the interface. Most companies couldn’t coordinate this across their own organization, let alone across multiple platforms.

The magic was in the execution details. Handoff appears as a subtle icon in the Dock on Mac, or in the app switcher on iOS—visible but not intrusive. The transition between devices feels instantaneous because Apple uses Bluetooth Low Energy and iCloud to keep devices in constant lightweight communication. When you tap the Handoff icon, the app launches on your current device with your exact previous state restored. There’s no data loss, no context switching, no friction. Psychologically, this removes the perception that you’re using separate devices—you’re simply continuing work on whichever device is most convenient.

How to use Continuity on your iPhone, Mac, Watch and iPad
How to use Continuity on your iPhone, Mac, Watch and iPad 

The broader Continuity ecosystem expanded on this principle. Instant Hotspot allows your Mac to automatically connect to your iPhone’s cellular data without manual pairing. Universal Clipboard lets you copy text or images on your iPhone and paste them on your Mac—seamlessly. Handoff calls and messages work across devices, so you can start a call on your Apple Watch and continue on your iPhone without hanging up and redialing. AirDrop enables instant file sharing between any nearby Apple devices using encrypted wireless protocols. Each feature addressed a specific friction point—but together, they created a narrative that choosing Apple meant never thinking about device boundaries again.

The business impact proved substantial. Apple’s ecosystem approach created powerful retention mechanics. Users invested in multiple Apple devices earned increasing returns—each new device added value to the existing devices. This compounding value makes switching to competitors expensive. Microsoft users can move their email and documents to Google Workspace and lose nothing; Apple users face a genuine loss if they switch. This isn’t achieved through forced lock-in, but through genuine experience superiority that emerges from ecosystem integration.

The user research behind Continuity revealed something crucial: people don’t think about devices—they think about tasks. A user preparing a presentation doesn’t want a “Mac experience” and an “iPad experience”; they want a single, coherent presentation experience that happens to leverage multiple devices. Traditional device manufacturers optimized for individual devices; Apple optimized for the task spanning devices. This task-centric thinking guided every design decision. Notifications sync across devices—you don’t get duplicate alerts. Your default apps remain consistent across devices. Your iCloud data stays synchronized automatically, creating a unified information experience.

How to use Continuity on your iPhone, Mac, Watch and iPad
How to use Continuity on your iPhone, Mac, Watch and iPad

The Continuity handoff concept inspired competing products like Google’s cross-device computing features and Microsoft’s universal clipboard, validating that Apple had identified a genuine user need. But because Apple controlled the full stack—hardware, OS, and apps—they executed with consistency competitors couldn’t match. A third-party developer building for both iOS and macOS has to manage different code bases, different design guidelines, and different OS capabilities. Apple’s first-party apps (Mail, Notes, Safari, Maps) work identically across all platforms because they share underlying code and design principles.

The security and privacy architecture deserves mention because it’s invisible but critical. Handoff data transmits encrypted between devices. iCloud synchronization uses end-to-end encryption for sensitive data. When you hand off a task containing private information, Apple’s infrastructure ensures that data never exists on unencrypted servers where Apple itself can read it. This technical foundation builds trust—users can hand off anything, from financial records to health data to private messages, knowing the system protects privacy by design.

By 2024, the Apple ecosystem had grown to over 800 million active devices. Continuity features account for a portion of this growth because they make the ecosystem objectively more functional than alternatives. Samsung users with an iPhone cannot access Handoff. Google ecosystem users switching to Apple gain these capabilities. The competitive advantage compounds—each new user who experiences seamless handoff becomes a stronger advocate within their social network.

The UX principle here transcends Apple: Seamless experience across touchpoints reduces friction, but unified design philosophy ensures consistency. Continuity succeeded not because Apple created magical technology (the underlying wireless protocols existed for years), but because they designed comprehensive, coherent features that addressed real user pain points. They treated the multi-device world not as a fragmentation problem but as an opportunity to create differentiation through integration. That’s how a feature that seems invisible—because it works so smoothly you never think about it—becomes one of the most powerful retention mechanics in the tech industry.

Also Read: Amazon One-Click Checkout: The UX Case Study That Revolutionized E-Commerce

RPS // Blogs // How to Implement AI as a Design Collaborator in 2026: A Practical Guide for UX/UI Teams
How to Implement AI as a Design Collaborator in 2026: A Practical Guide for UX/UI Teams

AI Design Tools 2026: How to Integrate AI Into Your Design Workflow Without Chaos

Learn how to use AI as a design collaborator in 2026. Practical strategies for integrating AI tools like Figma AI and Builder.io into your UX/UI workflow without losing control or quality.

Look, I get it. You’ve been designing the same buttons, the same cards, the same navigation patterns for five years. And now AI can generate that stuff in 30 seconds. That feels existential. But here’s what I’ve realized after watching design teams actually implement AI in 2026: the panic is real, but the opportunity is bigger. The key isn’t fighting AI. It’s using it to stop wasting your brain on repetitive work so you can spend it on actually deciding what matters.

The problem most teams hit first is treating AI like a designer replacement instead of a design assistant. They point at Figma AI or generative tools and think, “Why do I need a junior designer anymore?” So they remove the junior designer, and suddenly they’re drowning in options with no one to evaluate them. That’s backwards. AI should handle the options generation. Humans should handle the judgment.

The "Option Overload" Trap
The “Option Overload” Trap

Here’s where I landed after seeing this play out: AI is phenomenal at expanding the canvas. Give it a brief, and it spits out ten layout variations. Give it a component library, and it suggests how they could work together. Give it a user flow, and it generates twelve different information hierarchies. But then what? A human has to look at those twelve variations and ask the questions AI can’t: Does this actually solve the user’s core problem? Does this align with our business constraints? Does this feel like our brand? That’s where the real work happens. That’s where designers become indispensable.

The teams winning in 2026 aren’t the ones using AI to move faster. They’re the ones using AI to move smarter. They’ve stopped using Figma as a place to create designs and started using it as a place to decide between AI-generated options. The operational shift is small but profound. Figma’s AI features in 2026 now include smart layer organization, component suggestions, and a feature called “Check Designs” that acts like a design system linter recommending your design tokens and variables automatically based on what you’ve built before. That’s not replacing you. That’s removing friction from work that doesn’t require human judgment.​

Where this actually transforms your process: when you connect AI tools to your existing design system and component library. Most teams don’t do this. They use AI standalone, which generates random buttons and layouts that don’t align with anything. But if you configure AI to work with your production components, everything changes. Builder.io Fusion, for example, generates production-ready code that connects directly to your codebase and design system. You’re not designing mockups that developers rebuild. You’re designing the actual product in a Git workflow. Every change gets reviewed and merged like code. That’s not just faster. That’s the removal of the handoff problem itself.​

The “Fusion” Solution

The practical implementation roadmap for most design teams looks like this: start with one real project, not a pilot that exists to prove concepts. Run your normal project timeline, but have AI generate three design variations for key screens instead of the designer generating one. Your designer then evaluates those three and makes a decision, potentially combining elements from multiple options. Measure what changes: number of revision rounds, time spent on design feedback, developer questions during handoff. In teams that implemented this cleanly, design revisions dropped roughly 30 percent because ambiguity was resolved earlier.​

The mistake most teams make is rolling AI out to everyone at once, then wondering why the output is inconsistent. Smart teams do the opposite. They run one project with one designer who’s comfortable with experimentation. That designer learns the tool, figures out what prompts generate useful output versus noise, and discovers where AI actually saves time versus where it creates busywork. After two to three projects, they train the rest of the team based on real patterns, not theoretical ones.

The “Decider” Mindset Shift

There’s also the psychological shift that matters more than people admit. Designers often feel like they’re in competition with AI. That if they use it, they’re admitting they’re not good enough. Flip that. The designers who embrace AI early are the ones who go from “I executed this design” to “I made the decision that this was the right design, and I evaluated these five alternatives to get here.” That’s more valuable. That’s harder to automate. That’s what keeps you employed when AI gets cheaper.

Also Read: Why Everything Looks the Same in 2025: The Copy-Paste World

RPS // Blogs // Why Everything Looks the Same in 2025: The Copy-Paste World
Why Everything Looks the Same in 2025: The Copy-Paste World

Every app looks identical. Design systems created this problem. Learn why sameness is expensive and how intentional divergence builds real brand differentiation.

Open Apple Music. Open Twitter. Open Airbnb. Open Instagram. Different companies. Different audiences. Different business models. Same feeling. Same layouts. Same gestures. Same visual language. This isn’t an accident. It’s the logical outcome of modern design systems. And while systems solved the chaos of early web design, they’ve created a new problem that’s harder to see: invisibility.

The Safety Trap: Why Designers Choose Sameness

Design today is built from shared components—same UI kits, same frameworks, same inspiration sources, same Figma community files downloaded a thousand times. Designers aren’t copying each other maliciously. They’re optimizing for safety. And safety produces sameness. You can’t fail if you follow the pattern. You can’t be wrong if you use the framework everyone else uses. So the pattern spreads until it becomes invisible—not because it’s so good, but because it’s so familiar.

The visual grammar is predictable: card-based layouts, bottom navigation, rounded rectangles, spacing rhythms that feel balanced because we’ve seen them a hundred times. Everything feels usable. Nothing feels distinctive. We’ve created a world where recognition beats identity. Users don’t remember the product. They remember it felt expected.

Three Forces Driving the Copy-Paste Era

Pattern worship is the first force. Design systems reward consistency—that’s genuinely good. But consistency has become dogma. Once a pattern “works,” no one questions it again. The fact that everyone uses the same navigation patterns isn’t because alternative patterns wouldn’t work; it’s because proven patterns feel safer. Fear of breaking mental models is the second force. Designers are told: “Don’t surprise users.” So we stop surprising them at all. The result? Interfaces that are technically easy to use and psychologically impossible to remember.

Third is platform gravity. iOS, Android, and web conventions pull everything toward the same center. Deviation feels risky. Risk feels expensive. So brands conform. The system self-reinforces: safe design gets funded, risky design gets questioned, sameness spreads.

The Real Cost of Invisibility

When everything looks the same, something critical happens: brand becomes interchangeable. If Apple Music and Spotify have the same interaction patterns, the same layout logic, the same visual rhythm, what’s stopping users from switching? Usability is table stakes now. It’s not a differentiator anymore. Price becomes the differentiator. That’s bad design economics. You’ve made your product easier to leave.

At Rock Paper Scissors, we worked with a fintech client facing exactly this problem. Their app worked perfectly. Users couldn’t remember it. Why? Because it looked like every other fintech app—sleek, minimal, standardized. We didn’t reinvent navigation. We didn’t break usability principles. We changed emphasis: different information hierarchy, bolder type decisions, intentional friction in key moments where it builds confidence instead of preventing action. Engagement increased. So did recall. Sameness wasn’t helping them. It was hiding them.

The Irony: Designers Created This Prison

Designers built design systems, libraries, and best practices to scale quality and solve chaos. That was the right move. But now those systems are creating uniformity. We’ve optimized away personality in the name of consistency. We solved the problem of inconsistency by removing the possibility of distinction. The system works. The system is also making everything invisible.

Breaking Out: Intentional Divergence

The solution isn’t “be different for the sake of it.” Arbitrary differentiation is as bad as no differentiation. The answer is intentional divergence. Where can you safely break expectations? Where does your brand deserve emphasis? What should users feel, not just do? Memorable products take small, consistent risks. Not risks in usability—risks in personality, emphasis, and the micro-moments where brand becomes tangible.

Think about why you remember certain products. It’s usually not the navigation. It’s the feeling. The emphasis. The moment something surprised you (in a good way) because the designer chose to be slightly different instead of perfectly safe.

The Next Generation

In 2025, everything looks the same because we designed it that way. The next generation of great products won’t reject usability. They’ll reject invisibility. And that will require designers brave enough to stop copy-pasting—and start deciding again. Not deciding against best practices. Deciding how to bend them toward something that actually feels like a brand.

Also Read: AI Won’t Replace Designers It’ll Replace Bad Design Execution