Frontend System Design1 min readPremium

Design a Spreadsheet – Frontend System Design

Design a Spreadsheet - Frontend System Design

We’ll walk through the frontend system design for a collaborative spreadsheet like Google Sheets. Our goal is a grid that can hold 10,000 × 100 cells, stay fast while you arrow around, evaluate SUM, AVERAGE, and refs like =A1+B2, and show other people’s selections without turning the sheet into a million DOM inputs.

Interviewers are listening for three ideas: a sparse cell map, a windowed grid with one editor input, and a formula dependency graph that dirties dependents instead of the whole workbook. Collaboration is an operation stream on cells, not a second copy of the grid. You’ll see estimates for a million-cell sheet, the view-model split, and the keyboard model that makes this feel like a spreadsheet.

Problem Statement

Build the frontend for a collaborative spreadsheet like Google Sheets.

Requirements:

  • A grid of cells with a formula bar
  • Edit a cell, compute formulas that reference other cells
  • Virtualize so a 10,000 × 100 sheet stays fast
  • Multiple users can edit at once, with live cell selections

Describe the grid, formula evaluation, selection,... premium content.

Premium

Keep reading with Premium

Get the rest of this guide plus every premium question, solution, and system design deep dive.

  • All premium solutions
  • System design deep dives
  • Company-specific prep

4.9/5 from our users