System Design

What todo apps never teach: building frontend systems that scale. Start with the core concepts, then the full question breakdowns.

Introduction

0 / 5
Introduction
Introduction

What the frontend system design round tests, and how to approach it.

Core Concepts

Every concept in this guide in one place, and where each one comes up.

123
Delivery FrameworkPro

A step by step way to run the interview, from scoping to the final design.

How to PreparePro

What to read first and how to practice before the interview.

Questions to AskPro

What to ask the interviewer at the end, and what to leave out.

Core Concepts

0 / 20
Styling ApproachesPro

Comparing plain CSS, CSS Modules, Tailwind, and CSS in JS.

GET /user{ "id": 1 }
API DesignPro

Designing the contract between the frontend and the server.

Broadcast ChannelsPro

Keeping open tabs of the same site in sync with the BroadcastChannel API.

Server Sent EventsPro

One open HTTP connection that streams updates from the server to the browser.

Real-Time TransportsPro

Long polling, Server Sent Events, and WebSocket compared side by side.

Virtualization

Rendering only the rows on screen so a huge list stays smooth.

State Management ToolsPro

Choosing between plain React, a global store, and server state tools.

Monoliths

Why one codebase is the right start, and the problems that show up later.

MonoreposPro

Keeping many frontend apps and libraries together in one repository.

MicrofrontendsPro

Splitting a frontend into remotes that teams build and deploy on their own.

Choosing a RepoPro

Picking between a monolith, microfrontends, and one repo or many.

Performance at ScalePro

Keeping a large, long lived frontend fast for the whole session.

Performance BudgetsPro

Setting limits on bundle size and speed, then enforcing them in CI.

Testing StrategyPro

Choosing a testing shape and deciding what each layer should cover.

Specialized Testing PatternsPro

Testing past the happy path: permissions, translations, access.

Microfrontend Perf ProblemsPro

The performance problems that appear once a frontend is split into remotes.

Optimistic Updates

Update the screen first, send the request after, roll back if it fails.

Future-Proof ComponentsPro

Building a React component that survives server rendering and hydration.

AI & LLM IntegrationPro

Adding an LLM feature to a frontend, worked through one shopping assistant.

External DependenciesPro

Deciding whether to install a dependency or build the thing yourself.

Questions

0 / 2
Design System LibraryPro

A component library: tokens, APIs, theming, distribution, and versioning.

TODOWalkGymProgressTennisReviewCodingGamingDone
Jira BoardPro

A Kanban board with drag and drop, optimistic reordering, and live updates.