InPlaySoft

Customization without the engineering queue

A configurable component system that gives operators room to express their brand while protecting the structure underneath.

Designed for an existing ecosystem of 10+ operator brands · Casino first

The assignment

InPlaySoft is a cloud-based iGaming platform for casino, sportsbook and esports, serving an ecosystem of operator brands with 1M+ monthly active users. Small front-end changes kept interrupting engineering and took too long for operators. I proposed a configurable component system and a catalogue that could become the shared reference for how those components work. The CEO gave me the autonomy to develop the idea, and the system is still being built.

Role
Senior Product Designer
Origin
Self-initiated · CEO sponsorship
Timeframe
2025–2026
Status
In construction · Casino first
Ownership
Design, system and documentation

One platform, many expressions

Every brand on the platform looks different. Customization was never the problem. Operating it was.

InPlaySoft’s white-label platform serves an ecosystem of operator brands: GingaBet, Viva Sorte, ZeroUm, 4Play, 4Win, BandBet, QG.bet, Energia and others. Each is a visually distinct brand over the same recurring product architecture.

The friction was in how that flexibility was operated. Small front-end requests kept pulling engineering away from more urgent work, while operators waited for changes that should have been simple. A Page Builder was already available, but it was complex, data-heavy and required substantial training, so those requests kept flowing through engineering.

GingaBet
Viva Sorte
4Play
BandBet
4Win
ZeroUm
Energia
QG
Eight of the operator brands on the platform, casino lobby each: different brand expressions over the same product architecture. Context for the system, not evidence of it.

A different model

Give operators room to change what expresses their brand, and lock what holds the product together.

I proposed a different operating model: instead of requesting every change or learning a heavy builder, operators would configure components within defined boundaries. The CEO gave me full autonomy to develop the idea. This was not a component library assignment. It started as a proposal.

The model is controlled flexibility. Operators get meaningful control over brand expression, while the rules that keep a component stable across devices and contexts stay with the system.

Freedom, with boundaries

Inside a Jackpot, six brand properties can change. Sizing, spacing and responsive structure stay with the system.

Jackpots became the working example for that boundary. Operators can change imagery, motion, borders, typography, colors and variants. Sizing, spacing, viewport rules and the underlying structure remain governed by the system because they determine how the component holds together across devices.

Brand expression
Imagery · Motion · Borders · Typography · Colors · Variants
System-defined
Sizing · Spacing · Viewport rules · Component structure
The Layout tab of the Jackpot Grand in the catalogue: tables of dimensions, structure and responsive values for desktop, tablet and mobile.
Screens · LayoutStructure, dimensions and responsive definitions documented across desktop, tablet and mobile.

Designing the rules

Defined in Figma first, refined as it was built.

  1. 01

    Anatomy first, in Figma

    The system started in Figma in 2025. Each component was defined there first: its structure and anatomy, which parts exist and how they relate, which of them an operator may touch, and its variants, variables, tokens and rules. That initial architecture is where the component logic comes from.

  2. A Figma window showing the Game Category Banners component in three arrangements, Split, Grid and Inline, each drawn for desktop, tablet and mobile.
    Figma · Game Category BannersGame Category Banners in Figma: Split, Grid and Inline, each defined for desktop, tablet and mobile.
  3. 02

    Variants and exposed properties

    The variants a component offers, and the properties exposed for it. The Game Category Banners come in three arrangements, Split, Grid and Inline, each drawn for desktop, tablet and mobile. In the Jackpot, the exposed properties are imagery, motion, borders, typography and colors. Exposing a property is a decision. So is not exposing one.

  4. The Properties tab of the Jackpot Thumbnail in the catalogue: four groups, Block, Artwork, Logo and Meta, listing properties such as background, radius, padding, position, source, height, color and typography with their values.
    Catalogue · PropertiesJackpot Thumbnail, Properties tab: block, artwork, logo and meta, each with the values it is built from.
  5. 03

    Behavior and motion as part of the specification

    How a component moves and responds is written into its definition rather than decided at implementation: autoplay and loop, drag and swipe, easing, pauses on hover, drag, focus and hidden tabs, and what happens under reduced motion.

  6. The Behavior & Motion tab of the Jackpot Thumbnail: rows for the amount count-up, the game strip autoplay and pauses, the thumbnail hover, and their reduced-motion values.
    Screens · Behavior & MotionJackpot Thumbnail: the count-up, the autoplay and what pauses it, and what reduced motion switches off.
  7. 04

    Accessibility inside the specification

    Accessibility requirements are part of each component’s specification, not a separate review: contrast, with AA targets where applicable; ARIA considerations; and keyboard operation, focus behavior, announced content and reduced-motion rules, documented alongside the component.

  8. The Behavior & Motion tab of the Jackpot Carousel: rows for data, update motion, the row's inputs and the card's hover, focus, reduced motion, announced text and artwork alt.
    Screens · Behavior & MotionJackpot Carousel: keyboard input, a focus state that matches hover, what is announced, and an empty alt where the button already names the game.
  9. 05

    Defined per device

    Each component is defined and previewed for desktop, tablet and mobile, so a variant that holds on a desktop screen is checked on a phone before it exists in the catalogue.

  10. The same component previewed for desktop, tablet and mobile, switched live in the catalogue.

From library to working catalogue

The system does not stop in Figma.

In 2026 I began turning the Figma definitions into a working catalogue on the platform. Each component page brings together its variants, the properties and tokens it is built from, behavior and motion, device previews, localized content and release history. The catalogue is the shared reference for how a component is defined and expected to behave.

The Missions page of the catalogue: breadcrumb, title, description, a count of five components, an overview paragraph and the first component, Gameplay, with its tabs, device switch and a preview of six mission cards.
Catalogue · Component pageA component page in the catalogue: Missions, its overview, five components, and the first one with its tabs, device switch and preview.
  1. Figma Component definition: structure, variables, tokens, rules.
  2. Catalogue Shared reference and functional documentation.
  3. Claude Design Sync Component definitions made available to development during implementation.
  4. Development The development team implements the components.
  5. New Page Builder Planned operator delivery layer.
Screens · Tournament Cards The same component adapting to localized content and changing values across English, Portuguese and Spanish.

Working with the components functionally also feeds information back into the system, rather than making this a one-way handoff from Figma. Claude Code and Claude Design are part of how I implement, inspect and refine them in that environment. As the system grew, that process also made some limitations easier to see, including the need to introduce Semantic tokens when the original Primitive and Foundation structure became harder to navigate.

Reflection

I went into this thinking about customization as an operational problem: too many small requests, too many of them running through engineering. Building the system made a different question clearer. Not how much to make configurable, but where configurability should stop. Every property I expose gives an operator more control, but it also changes what the system has to account for across brands, devices and content. I ended up spending as much time deciding what should stay protected as deciding what should be configurable.

Next case