JS Guide
HomeQuestionsTopicsCompaniesResources
BookmarksSearch

Built for developers preparing for JavaScript, React & TypeScript interviews.

ResourcesQuestionsSupport
HomeQuestionsSearchProgress
HomeTopicssystem-designFrontend System Design Fundamentals
Next
system-design
beginner
15 min read

Frontend System Design Fundamentals

system-design
radio-framework
architecture
interview
requirements
trade-offs

Frontend system design interviews evaluate your ability to architect complex client-side applications — the RADIO framework (Requirements, Architecture, Data model, Interface, Optimization) provides a structured approach to break down any design problem.

Key Points

1RADIO Framework

A structured approach to frontend system design: Requirements, Architecture, Data model, Interface, Optimization — spend roughly 5-10 minutes on each section.

2Requirements First

Always clarify functional requirements, non-functional requirements, scale, and constraints before drawing any architecture — the biggest mistake is designing without understanding the problem.

3Frontend vs Backend Focus

Frontend system design focuses on component hierarchies, rendering strategies, client state management, and user experience — not databases, load balancers, or server replication.

4Trade-off Communication

Interviewers evaluate your ability to articulate trade-offs (CSR vs SSR, normalized vs denormalized state, bundle size vs feature richness) more than arriving at a single 'correct' answer.

5Optimization Awareness

Address performance (code splitting, virtualization), accessibility (keyboard navigation, ARIA), and error handling (error boundaries, graceful degradation) as first-class concerns.

What You'll Learn

  • Apply the RADIO framework to systematically approach any frontend system design question
  • Distinguish between frontend and backend system design concerns and vocabulary
  • Identify functional and non-functional requirements through targeted clarifying questions
  • Draw a high-level architecture diagram showing component hierarchy, data flow, and rendering strategy
  • Communicate trade-offs clearly when choosing between competing architectural approaches

Deep Dive

Frontend system design is a category of technical interviews where you're asked to design the architecture of a complex client-side application or feature. Unlike backend system design (which focuses on databases, servers, and distributed systems), frontend system design focuses on component hierarchies, state management, data fetching, rendering strategies, and user experience at scale.

Why Frontend System Design Matters

Modern frontend applications are no longer thin layers over server-rendered HTML. Applications like Google Docs, Figma, Slack, and Twitter are complex client-side systems with real-time collaboration, offline support, optimistic updates, and thousands of interactive components. Designing these systems requires deliberate architectural decisions that affect performance, maintainability, and user experience.

Interviewers use system design questions to assess:

  • Breadth of knowledge — Can you reason about rendering, data fetching, state management, and performance holistically?
  • Trade-off analysis — Can you articulate why you chose one approach over another?
  • Scalability thinking — Will your design work for 10 users and 10 million users?
  • Communication skills — Can you explain complex architecture clearly?

The RADIO Framework

The RADIO framework provides a structured approach to tackle any frontend system design question:

Requirements (5 minutes)

Clarify the problem scope before designing anything. Ask about:

  • Functional requirements — What features must the system support? What are the core user flows?
  • Non-functional requirements — Performance targets (load time, interaction latency), accessibility, offline support, internationalization
  • Scale — How many users? How much data? How many concurrent connections?
  • Constraints — Browser support, device targets (mobile/desktop), existing tech stack

Architecture (10 minutes)

Draw a high-level architecture diagram showing:

  • Component hierarchy — Major UI sections and their relationships
  • Data flow — How data moves from APIs through state management to components
  • Rendering strategy — CSR, SSR, SSG, or hybrid — and why
  • Third-party integrations — Analytics, authentication, CDN, etc.

Data Model (10 minutes)

Define the data structures and state management:

  • Client state — UI state, form state, navigation state (useState, Zustand, Jotai)
  • Server state — Fetched data, cache (React Query, SWR, Apollo)
  • URL state — Search params, route params
  • API design — REST endpoints, GraphQL queries, WebSocket messages
  • Normalization — How to avoid duplicate data and keep state consistent

Interface (10 minutes)

Design the component APIs and contracts:

  • Component interfaces — Props, events, slots, compound patterns
  • API contracts — Request/response shapes, error formats, pagination
  • State interfaces — Store shape, action types, selector patterns

Optimization (5 minutes)

Address performance and edge cases:

  • Loading performance — Code splitting, lazy loading, prefetching
  • Runtime performance — Virtualization, memoization, debouncing
  • Network — Caching, optimistic updates, retry strategies
  • Accessibility — Keyboard navigation, screen reader support, focus management
  • Error handling — Error boundaries, retry logic, graceful degradation

Common Frontend System Design Questions

Typical interview questions include designing:

  • A social media feed (infinite scroll, real-time updates, media handling)
  • An autocomplete/search component (debouncing, caching, keyboard navigation)
  • A chat application (WebSockets, message history, presence)
  • An image carousel (lazy loading, gestures, accessibility)
  • A notification system (real-time, priority, grouping)
  • A form builder (dynamic fields, validation, conditional logic)
  • A dashboard with charts (data aggregation, real-time updates, responsive layout)

How Frontend Differs from Backend System Design

| Aspect | Frontend | Backend | |--------|----------|----------| | Rendering | CSR, SSR, SSG, streaming | N/A | | State | Client state, server cache | Database, cache layers | | Scaling | Code splitting, CDN, edge | Load balancers, sharding | | Latency | Time to Interactive, input lag | API response time, throughput | | Networking | REST, GraphQL, WebSocket | Microservices, message queues | | Reliability | Error boundaries, offline | Replication, failover |

Key Interview Distinction

Frontend system design is about structuring client-side applications for maintainability, performance, and scale. The RADIO framework ensures you cover all critical aspects systematically. Always start with requirements clarification — the worst mistake is designing a solution before understanding the problem.

Fun Fact

The RADIO framework was popularized by GreatFrontEnd (formerly Yangshun Tay's Tech Interview Handbook). It was designed specifically for frontend interviews because the classic backend system design frameworks (like DDIA-style) don't map well to client-side architecture problems.

Continue Learning

Component Architecture at Scale

intermediate

Data Layer Architecture

intermediate

Practice What You Learned

How do you approach a frontend system design interview?
junior
fundamentals
Use the RADIO framework: gather Requirements, define Architecture, design the Data model, specify Interfaces, and address Optimizations — spending roughly 5-10 minutes on each step within a 40-minute interview.
Next
Component Architecture at Scale
Next