Frontend System Design
Design real frontends the way senior interviews and real teams do: a repeatable framework, the trade-offs, and the building blocks in code.
45 lessons across 8 units: rendering, state, networking, performance, accessibility and security, then seven full case studies, with quizzes and 62 coding problems.
- Units
- 8
- Lessons
- 45
- Coding problems
- 62
- Examples
- 45
Free: units 1 to 2 (10 lessons). Units 3 to 8 with DevArcade Pro.
What you'll learn
- The Design InterviewWhat frontend system design is, the RADIO framework, requirements, estimates and trade-offs.
- Rendering and ArchitectureCSR, SSR, SSG and ISR, hydration and islands, SPA vs MPA, micro-frontends and component boundaries.
- State and Data FlowKinds of state, URL state, normalization, server caches, optimistic updates and events.
- Networking and APIsREST, GraphQL and RPC, pagination, dedupe and retries, cancellation, real time and offline sync.
- PerformanceCore Web Vitals, the critical path, code splitting, images, virtualization and caching layers.
- Accessibility, i18n and UXSemantics and focus, keyboard widgets, localization, loading and error states, resilience.
- Security and ReliabilityXSS and output encoding, CSP and CSRF, tokens, feature flags, monitoring and testing.
- Case StudiesNews feed, typeahead, carousel, chat, kanban, product page and design system, then the boss.
Course outline
8 units and 45 lessons. Each lesson has a short read with examples you run, a quiz, and coding problems tested in your browser; most have a step-through visualizer.
- Free
Unit 1:The Design Interview
What frontend system design is, the RADIO framework, requirements, estimates and trade-offs.
- What Frontend System Design Is Designing the client side of a product: components, data, networking and quality, and how this differs from backend system design.1 problem
- The RADIO Framework A repeatable order for any design question: Requirements, Architecture, Data model, Interface, Optimizations.1 problem
- Requirements and Scope Functional versus non-functional requirements, the questions that shape a design, and cutting scope on purpose.1 problem
- Back-of-Envelope Estimates Quick client-side numbers: payload sizes, list lengths, DOM nodes and update rates, and what each one tells you to do.1 problem
- Communicating Trade-offs Every choice costs something: name the options, the criteria and the cost, and decide out loud.1 problem
-
- Free
Unit 2:Rendering and Architecture
CSR, SSR, SSG and ISR, hydration and islands, SPA vs MPA, micro-frontends and component boundaries.
- CSR, SSR, SSG and ISR Where and when HTML is produced: in the browser, on each request, at build time, or at build time with periodic refresh.1 problem
- Hydration, Streaming and Islands Making server HTML interactive, streaming it in pieces, and only shipping JavaScript for the parts that need it.1 problem
- SPA vs MPA and Routing One page that swaps views versus many server pages, client routing on the History API, and the hybrids in between.1 problem
- Micro-frontends Splitting one product across independently deployed frontends: when it pays off, how pieces are composed, and the shared-dependency trap.1 problem
- Component Architecture and Boundaries Splitting a screen into components, presentational versus container pieces, and where shared state should live.1 problem
-
- Pro
Unit 3:State and Data Flow
Kinds of state, URL state, normalization, server caches, optimistic updates and events.
- Kinds of State Local UI state, server state, URL state, form state and global client state: each has a natural home.1 problem
- Normalizing Client Data Store each entity once, by id, and refer to it everywhere else: no duplicate copies to keep in sync.2 problems
- Caching Server State Fresh, stale and expired data, stale-while-revalidate, cache keys and invalidation after writes.2 problems
- Optimistic Updates and Rollback Show the result of an action before the server confirms it, and undo it cleanly when the request fails.1 problem
- Event-Driven Updates and Form State Publish and subscribe between distant parts of the app, and the state a real form needs beyond its values.1 problem
-
- Pro
Unit 4:Networking and APIs
REST, GraphQL and RPC, pagination, dedupe and retries, cancellation, real time and offline sync.
- REST, GraphQL and RPC Three ways to shape the client-server interface, over-fetching and under-fetching, and batching many small requests into one.1 problem
- Offset vs Cursor Pagination Page numbers versus "give me what comes after this item", why feeds use cursors, and merging pages without duplicates.1 problem
- Request Dedupe and Retries Share one in-flight request between callers, and retry failures with exponential backoff and jitter.2 problems
- Timeouts, Cancellation and Rate Limits Give up on slow requests, cancel ones nobody needs any more with AbortController, and limit how fast the client sends.2 problems
- Real-Time Updates Polling, long polling, server-sent events and WebSockets, reconnection, and keeping messages in order.1 problem
- Offline Support and Sync Local-first writes, an outbox of pending changes replayed in order, and resolving conflicts when two devices disagree.1 problem
-
- Pro
Unit 5:Performance
Core Web Vitals, the critical path, code splitting, images, virtualization and caching layers.
- Core Web Vitals LCP, INP and CLS: what each measures, the thresholds, and what moves them.2 problems
- The Critical Rendering Path From bytes to pixels: what blocks the first paint, and how preload, async, defer and inlining change it.1 problem
- Code Splitting and Lazy Loading Ship only the code the current screen needs, load the rest on demand, and survive a chunk that fails to load.2 problems
- Images and Fonts Responsive images, modern formats, lazy loading and reserved space; fonts that load fast without jumping.1 problem
- Virtual Lists, Memoization and Workers Render only the rows on screen, skip work whose inputs did not change, and move heavy work off the main thread.2 problems
- Caching Layers and Budgets Memory, HTTP cache, service worker and CDN: who caches what, Cache-Control, and performance budgets.2 problems
-
- Pro
Unit 6:Accessibility, i18n and UX
Semantics and focus, keyboard widgets, localization, loading and error states, resilience.
- Semantic Structure and Focus Landmarks and headings as the page's map, focus management in SPAs and dialogs, and honoring reduced motion.1 problem
- Keyboard and Screen Readers for Complex Widgets Tabs, menus, listboxes and comboboxes: roving tabindex, arrow keys, and the roles and states that make them announce correctly.1 problem
- Internationalization Message catalogs with fallbacks, plural rules, numbers and dates through Intl, right-to-left layouts and text that grows.1 problem
- Loading, Empty and Error States Every data-driven view has more states than "loaded": design each one, avoid spinner flashes, and keep stale data visible on errors.1 problem
- Resilience and Graceful Degradation Error boundaries, progressive enhancement, fallbacks for failing dependencies, and circuit breakers that stop hammering a broken service.1 problem
-
- Pro
Unit 7:Security and Reliability
XSS and output encoding, CSP and CSRF, tokens, feature flags, monitoring and testing.
- XSS and Output Encoding How injected scripts get into pages, encoding output for its context, safe URLs, and sanitizing the HTML you must render.2 problems
- CSP, CSRF and Clickjacking A Content Security Policy as a second line of defense, forged cross-site requests, and pages framed to trick clicks.2 problems
- Auth Tokens and Sessions Cookies versus web storage for credentials, short-lived access tokens with refresh, and refreshing once when many requests need it.1 problem
- Feature Flags and Error Monitoring Ship dark, roll out gradually with stable buckets, keep a kill switch, and group production errors into actionable issues.2 problems
- Testing Strategy and Observability Unit, integration, end-to-end and visual tests, what each catches, and measuring real users with percentiles.1 problem
-
- Pro
Unit 8:Case Studies
News feed, typeahead, carousel, chat, kanban, product page and design system, then the boss.
- Case Study: News Feed An endless, live feed of posts with images, likes and comments: cursor pages, a "new posts" pill, virtualization and optimistic likes.1 problem
- Case Study: Autocomplete A search box with suggestions: debouncing, caching by prefix, racing responses, keyboard support and highlighting.2 problems
- Case Study: Image Carousel A gallery carousel: state machine, autoplay that respects users, preloading neighbors, swipe and keyboard, and no layout shift.2 problems
- Case Study: Chat App Real-time messaging: WebSocket transport, optimistic sends reconciled with server ids, ordering, unread counts and history.2 problems
- Case Study: Collaborative Kanban A board several people edit at once: fractional ordering, drag and drop that works with a keyboard, and merging concurrent moves.2 problems
- Case Study: Product Page and Cart An e-commerce product page and cart: rendering for SEO and speed, money in integer cents, a cart that survives sign-in, and a careful checkout.2 problems
- Case Study: Design System A component library many teams share: tokens and theming, component APIs with variants, accessibility built in, versioning and adoption.2 problems
- Boss: A Query Client Put the course together: a small data layer with caching, freshness, request dedupe, subscriptions, optimistic writes and invalidation.1 problem
-
Start Frontend System Design for free
Enroll for free and units 1 and 2 are yours. DevArcade Pro opens every unit of every course, including new ones as they launch, monthly or yearly.