Frontend System Design Interview: What You Actually Need to Know
A focused guide to the frontend system design interview: how it differs from backend, a repeatable framework, the topics that come up, and worked examples like autocomplete and a news feed.
Frontend System Design Interview: What You Actually Need to Know
Frontend system design rounds catch people off guard because they aren't backend system design with a UI bolted on. The scaling questions are different, the trade-offs live in the browser, and the interviewer wants to see that you can architect a non-trivial UI end to end. Here's what the round actually rewards.
How it differs from backend system design
Backend system design obsesses over servers, databases, sharding and throughput. Frontend system design obsesses over the client: rendering strategy, data fetching and caching, state management, performance on real devices, accessibility, and the API contract between browser and server. You'll still touch the backend — but through the lens of "what does the client need, and how does it stay fast and correct?"
A framework you can reuse
- Clarify requirements. Functional (what must it do?) and non-functional (scale, latency, offline, a11y, devices). Ask before you draw.
- Define the API / data contract. What does the client fetch, in what shape, how often? REST vs GraphQL, pagination, real-time (polling vs SSE vs WebSocket).
- Choose a rendering strategy. CSR, SSR, SSG or a hybrid — justified by SEO, time-to-content and interactivity needs.
- Design the component architecture. Module boundaries, ownership of state, and where data lives (server cache vs client state).
- Handle state. Server state (cache, invalidation, optimistic updates) vs UI state (local, ephemeral). Name your caching and invalidation rules.
- Optimise performance. Code-splitting, virtualization for long lists, image strategy, debouncing/throttling, and the Core Web Vitals impact.
- Cover the cross-cutting concerns. Accessibility, error/empty/loading states, offline, and security (XSS, CSRF).
Say which step you're on. Structure is half the score.
Topics that come up (commonly discussed, not company-specific)
- Rendering strategies and hydration
- Data fetching, caching and cache invalidation
- State management at scale and re-render control
- List virtualization and pagination/infinite scroll
- Debounce/throttle and other input-handling patterns
- Real-time updates (WebSocket reconnection, backoff)
- Accessibility as a first-class requirement
- Frontend performance and Core Web Vitals
These are widely reported frontend interview themes — not a claim that any specific company asks a specific question.
Worked example: design an autocomplete
- Requirements: debounced queries, keyboard navigation, loading/empty/error states, accessible combobox semantics, caching of repeated queries.
- Data contract:
GET /search?q=returning ranked results; debounce the query, not the render; cancel in-flight requests when a new keystroke arrives (abortable fetch). - State: a small state machine (idle → loading → results/empty/error), an active-index for keyboard nav, and a query→results cache (a
Map). - Performance & a11y: cap and virtualise results if large; wire
role="listbox"/aria-activedescendant; ensure the whole thing is operable by keyboard.
Notice the answer never mentions sharding — the "scale" here is keystrokes and perceived latency, which is the frontend mindset.
Worked example: design a news feed (frontend)
Focus on infinite scroll with windowing, an optimistic "like", a normalized client cache with invalidation, image lazy-loading, and how you keep the main thread free. The backend feed-generation is a footnote; the browser experience is the point.
Common mistakes
- Answering as if it were backend system design (all servers, no browser).
- Skipping requirements and jumping to a component tree.
- Ignoring accessibility and error/loading states — increasingly a hard gate.
- Hand-waving state and caching, the areas most likely to be probed.
Practise it end to end
Design and explain an architecture interactively with Generate System Design — it supports HLD, service and LLD views, a guided request flow, and failure/scale analysis, which mirrors how you'd whiteboard in the round. Then drill the whole loop — concepts, coding and system design — in Frontend Interview Prep.
Frequently asked questions
How is a frontend system design interview different from backend?
It centres on the client: rendering strategy, data fetching and caching, state management, performance on real devices, accessibility, and the browser–server API contract — rather than servers, sharding and database throughput.
What should I say first?
Clarify functional and non-functional requirements, then define the data/API contract. Diving into components before scoping the problem is the most common mistake.
How do I practise frontend system design?
Draw real architectures interactively with Generate System Design, and track your progress across system design, JavaScript, React and coding in Frontend Interview Prep. Pair this with our HLD vs LLD explainer.
Practise frontend system design and track your gaps, free.
Everything runs in your browser. Nothing leaves your device.
Open Frontend Interview PrepGet the full plan — read the guide.