Premium
Drag & Resize Dashboard
Design a customizable dashboard made of widgets that the user can rearrange and resize. Widgets live on a grid layout, can be dragged to reorder/change position, and resized via handles. The dashboard layout is persisted (e.g. localStorage snapshot) so the user sees the same configuration…
- Requirements exploration
- Architecture / High-level design
What you’ll build / What this tests
This premium front-end system design system design focuses on Drag & Resize Dashboard. You’ll apply dashboard and drag-drop thinking with intermediate level constraints. The prompt emphasizes Design a customizable dashboard made of widgets that the user can rearrange and resize. Widgets live….
Learning goals
- Decompose Drag & Resize Dashboard into front-end components, state, and data flow.
- Apply dashboard, drag-drop, performance constraints to a real client architecture.
- Define performance budgets and UX trade-offs for the interface.
- Plan instrumentation and resilience for user-facing failures.
Key decisions to discuss
- Choose a data model that matches UI reads and writes.
- Pick a pagination + caching strategy to keep the UI fast.
- Set performance budgets (LCP/INP) and validate with telemetry.
Evaluation rubric
- Architecture: clear client data flow and component boundaries.
- Performance: budgets + caching/virtualization where needed.
- Resilience: offline/error states and retries defined.
- Observability: metrics/logs to validate UX and perf.
Constraints / Requirements
- Design a customizable dashboard made of widgets that the user can rearrange and resize. Widgets live…
- Requirements exploration
- Architecture / High-level design
- Data model
- Interface definition (API)
- Optimizations and deep dive
- Assume real users and real latency; budget for perceived performance.
- Define client-side caching and invalidation strategy.
- Plan pagination or windowing for large UI lists.
- Account for dashboard, drag-drop, performance constraints in the UI.
Mini snippet (architecture sketch)
Constraints:
- P95 UI response < 200ms
- 1k+ events/sec during peak
- Focus: dashboard, drag-drop
Components:
- Client cache + pagination
- Realtime updates (SSE/WebSocket)
- Observability + error states
Endpoints:
- GET /feed?cursor=
- POST /eventsCommon pitfalls
- Ignoring pagination/virtualization for long feeds.
- Underestimating client performance budgets.
- Overfetching data or failing to cache responses.
- Skipping failure states and retry UX.
Related questions
Upgrade to FrontendAtlas Premium to access this system design scenario. Already upgraded? Sign in to continue.