← Back to Journal UI / UX

Building a UI Design System: The Investment That Saves Dubai Companies Millions

By Gaëlle Lamirault · April 2026 · 12 min read
Key Takeaway

A design system is not a Figma file with reusable components. It is an operational infrastructure that reduces design and engineering time by 40-60%, enforces visual consistency across products and teams, and becomes more valuable as the organisation grows. For GCC companies operating in bilingual LTR/RTL environments, a design system is not optional once you pass two designers and twenty screens — without one, the compounding cost of inconsistency will exceed the cost of building the system within twelve months.

What a design system is (and what it is not)

The term "design system" gets used to describe everything from a shared Figma file to a full-stack component infrastructure. This imprecision costs companies money, because they end up either over-investing in what they need or under-investing in what they actually require.

A design system is three things working together:

A component library. This is the collection of reusable UI elements — buttons, inputs, cards, modals, navigation patterns, data tables, form fields — designed once and used everywhere. Each component has defined states (default, hover, active, disabled, error), defined sizes (small, medium, large), and defined variants (primary, secondary, ghost, destructive). The component library lives in Figma for designers and in code for engineers. When a designer drags a button component onto a screen, it should look and behave identically to the button a developer renders from the code library.

Design tokens. These are the atomic decisions that define your visual language — colours, typography scales, spacing units, border radii, shadow values, animation durations. Tokens are named abstractions: instead of using the hex value #1A73E8 directly, you use a token called color.primary.default that resolves to #1A73E8. This abstraction layer is what makes theming, dark mode, and multi-brand support possible. Change the token value once, and every component that references it updates automatically. For companies building SaaS products in Dubai, tokens are the foundation that makes white-labelling practical rather than painful.

Documentation and governance. Components and tokens without documentation are just files. The documentation layer explains when to use each component, how to combine them, what the accessibility requirements are, and how the system handles edge cases. Governance defines who can add new components, how changes get approved, and how deprecation works. Without governance, the system drifts — individual teams start creating local variants that undermine the consistency the system was built to enforce.

What a design system is not: a style guide (that is just the visual documentation layer), a component kit you downloaded from the Figma community (that is a starting point, not a system), or a brand guidelines document (that covers identity, not interface). A design system is infrastructure. It requires ongoing investment, maintenance, and ownership — just like any other piece of your technology stack.

When you actually need one

Not every company needs a design system. A startup with one designer building a single product with ten screens does not need a formalised system — they need speed and iteration. The overhead of building, documenting, and maintaining a system at that scale slows you down more than it helps.

A design system becomes necessary when the cost of not having one exceeds the cost of building one. Here are the concrete indicators:

Component architecture: how to structure it

A design system's component library is not a flat list of elements. It is a layered architecture, and getting the layers right determines whether the system scales or collapses under its own weight.

Layer 1: Primitives. These are the atomic elements — the smallest building blocks. A text element with defined type styles. A colour swatch. A spacing unit. An icon. These are not used directly in product design — they are the raw materials that compose into higher-level components. In Figma, these live as styles and variables. In code, they live as design tokens.

Layer 2: Core components. These are the foundational UI elements built from primitives. Buttons (with all their variants and states), text inputs, checkboxes, radio buttons, toggles, badges, avatars, tooltips. Each core component is self-contained, fully documented, and handles its own responsive behaviour. A well-designed core component library typically contains 20-30 components. Resist the urge to build more — every component you add is a component you must maintain.

Layer 3: Composite components. These are combinations of core components assembled into larger patterns. A form group (label + input + help text + error message). A card (image + title + description + action buttons). A navigation bar (logo + links + search + profile). A data table (headers + rows + pagination + sorting controls). Composite components encode layout decisions and interaction patterns. They are where most of the product-specific design decisions live.

Layer 4: Templates and patterns. These are page-level compositions — a settings page layout, a dashboard grid, a checkout flow, an onboarding sequence. Templates combine composite components with layout rules and content guidelines. They are not rigid — they define the structural framework that individual pages follow while allowing content flexibility within that structure.

The discipline is in the layering. When a product designer needs a new pattern, they should first check whether existing core and composite components can be combined to create it. Only when existing components genuinely cannot solve the problem should a new component be proposed. This gatekeeper function — built into the governance process — prevents the system from bloating with one-off components that get used once and maintained forever.

Design tokens: the layer most teams skip

Design tokens are where most design systems fail silently. A team builds beautiful components in Figma, hands them to engineering, and the engineers hard-code colour values, spacing pixels, and font sizes into the CSS. Everything looks correct — until someone needs to change the primary brand colour, add a dark mode, or create a white-label version of the product.

Without tokens, those changes require touching every component file, every page, and every CSS rule that references the old values. With tokens, you change one value in the token definition and the change propagates everywhere automatically.

Token categories for a GCC-market design system:

Tools for managing tokens: Figma Variables (introduced in 2023 and now mature enough for production use) handle the design side. For design-to-code sync, Style Dictionary, Tokens Studio, or custom build pipelines transform Figma token definitions into CSS custom properties, iOS Swift values, or Android XML resources. The goal is a single source of truth — tokens defined once, consumed everywhere. Read more about applying these principles in our guide to design system benefits.

The bilingual challenge: building for LTR and RTL

This is where design systems for GCC companies diverge fundamentally from Western design system practice. Every component, every layout, and every interaction needs to work in both left-to-right (English) and right-to-left (Arabic) orientations. This is not a CSS property you toggle at the end — it is a structural requirement that influences every design decision from the start.

What needs to mirror in RTL:

What does not mirror:

The technical implementation: CSS logical properties (margin-inline-start instead of margin-left, padding-inline-end instead of padding-right) handle most layout mirroring automatically when the document direction is set to RTL. The design system's code components should use logical properties exclusively — never physical directional properties. This single architectural decision eliminates 80% of the manual RTL work. For UX design in Dubai apps, building RTL-first (or at least RTL-equal) is a competitive requirement.

The ROI case: why the numbers work

Design systems are expensive to build. The ROI case needs to be concrete, not theoretical. Here is how the maths works for a typical Dubai tech company with three designers and eight engineers working on a single product:

Without a design system: Each designer spends roughly 30% of their time on component-level decisions — choosing colours, adjusting spacing, ensuring consistency with existing screens. That is approximately 50 hours per designer per month, or 150 hours total across the team. Engineers spend approximately 15% of their time on design interpretation — asking questions, measuring specs, fixing inconsistencies flagged in QA. That is approximately 50 hours per month across the engineering team. Total: 200 hours per month spent on work that a design system would automate.

With a design system: Component-level design decisions drop by 40-60%. Designers spend their time on product decisions, not component decisions. Engineering interpretation time drops by 70-80% because components have defined specs. Conservative estimate: the system saves 100-120 hours per month. At typical GCC blended rates for design and engineering talent (AED 150-250 per hour fully loaded), that is AED 15,000-30,000 per month in recovered productivity. A design system costing AED 100,000 to build pays for itself in four to seven months.

The compounding effect: as the team grows, the ROI accelerates. Adding a fourth designer without a system adds another 50 hours of component-level overhead per month. Adding a fourth designer with a system adds near-zero overhead — they use the existing components and produce consistent work immediately. The system scales linearly with the team while the cost of inconsistency scales exponentially.

Secondary ROI factors that are harder to quantify but real: faster feature delivery (designers skip component design and go straight to product design), fewer QA bugs related to visual inconsistency, reduced design debt, and faster onboarding for new hires. Companies we work with in Dubai typically report that designers new to the team produce their first production-ready screen within their first week when a design system exists — versus three to four weeks without one.

Build versus buy versus adapt

Three options for getting a design system, each with different cost and control profiles:

Build from scratch. Full custom design system built specifically for your product, brand, and technical stack. Highest cost (AED 80,000-200,000), longest timeline (8-16 weeks), but maximum control and brand alignment. This is the right choice for companies with strong brand requirements, complex bilingual needs, or technical stacks that do not fit standard component libraries. Most enterprise-scale GCC companies — banks, government platforms, large e-commerce operations — end up here because their requirements are too specific for off-the-shelf solutions.

Buy a commercial system. Adopt an existing design system like Ant Design, Chakra UI, or Material Design and customise it to your brand. Lower cost (AED 20,000-50,000 for the customisation layer), faster timeline (3-6 weeks), but less control and potential brand dilution. The risk: your product looks like every other product built on the same system. For B2B SaaS products where brand distinction matters less than functional quality, this is often the pragmatic choice.

Adapt and extend. Start with an open-source foundation (Radix UI primitives, Headless UI, or Shadcn) and build a custom design layer on top. Mid-range cost (AED 40,000-100,000), mid-range timeline (5-10 weeks), and a good balance of control and speed. You get production-tested accessibility and interaction patterns from the open-source base, with full visual control through your custom token and styling layer. This is increasingly the approach we recommend for mid-stage Dubai startups — you get the robustness of a mature component library with the flexibility to build a distinctive visual identity. See our breakdown of web design trends in Dubai for 2026 for how this approach is evolving.

Governance: the part everyone forgets

A design system without governance degrades within six months. Without clear rules for how the system evolves, individual teams start creating local variants — "we needed a slightly different card component for our feature" — and the system fragments into a collection of loosely related component libraries that no longer enforce consistency.

Governance covers four areas:

The governance overhead is real — plan for 10-20% of the initial build cost as ongoing quarterly maintenance. But the alternative — a system that decays into irrelevance within a year — is more expensive, because you have to build it again.

Common mistakes in design system projects

Frequently Asked Questions

How much does building a design system cost?
Building a design system in the UAE typically costs AED 50,000-200,000 depending on scope and complexity. A foundational design system — core component library (15-25 components), design tokens, basic documentation, and Figma library — runs AED 50,000-80,000. A mid-tier system adding bilingual LTR/RTL support, comprehensive component variants, accessibility compliance, and coded component library costs AED 80,000-140,000. An enterprise-grade system with full design-to-code handoff, automated token syncing, governance documentation, contribution guidelines, and multi-brand theming costs AED 140,000-200,000. Ongoing maintenance — quarterly audits, new component design, deprecation management — typically runs AED 15,000-30,000 per quarter. The ROI calculation: if your design and engineering teams spend 200+ hours per month on UI work, a design system that reduces that by 40-60% pays for itself within 4-8 months.
When does a company need a design system?
A company needs a design system when three or more of these conditions are true: (1) You have more than two designers working on the same product. Without a shared system, each designer creates their own component interpretations, and the product becomes visually inconsistent. (2) Your product has more than 20 distinct screens or views. Beyond this threshold, maintaining consistency through manual effort becomes unreliable. (3) You are building in multiple languages — particularly LTR and RTL — where every component needs directional variants. (4) Your engineering team spends significant time asking designers for specs, redlines, or clarification on component behavior. A design system eliminates this back-and-forth. (5) You are scaling your team — hiring new designers or engineers who need to produce consistent work quickly. A design system cuts onboarding time from weeks to days. (6) You are launching a second product or platform that shares the same brand. Without a design system, maintaining brand consistency across multiple products is nearly impossible.

Ready to build a design system that saves your team hundreds of hours? Let's scope it together.

Start a Conversation