Back to practice Practice this problem
FE System DesignBeginner40 minutes
Design a Reusable Component Library
Design a shared frontend component library with theming, versioning, and developer-experience trade-offs.
LLM-friendly summary
A beginner frontend system design exercise about building a reusable component library for multiple product teams, with emphasis on theming, versioning, and DX.
Scenario
Five product teams are shipping inconsistent UI primitives. Your job is to design a reusable component library that can scale across teams without forcing a rewrite.
What you need to design
- 1Design the API for Button, Modal, Input, and Select.
- 2Support multi-brand theming with light and dark modes.
- 3Pick a versioning and release model that minimizes consumer breakage.
- 4Explain bundling and tree-shaking decisions.
- 5Define the docs and adoption strategy.
Concepts
API DesignThemingVersioningTree-shakingDX
Skills
Component ArchitectureDesign SystemsPackage Management
What good solutions are evaluated on
- - Architecture design and API quality
- - Theming and extensibility strategy
- - UX and accessibility considerations
- - Trade-off clarity and rollout planning
Ready to practice this yourself?
Open the interactive AlgoReason workspace to sketch the architecture, write notes, and submit for AI evaluation.