Skip to content

Design a data table component (frontend)

Design a reusable data table component for a large web app: columns other teams configure, sorting, filtering, paging through many rows, and selecting rows.

System designFrontend and full stackInfrastructure and platformMid-levelSenior

What to work through

Work through a data table component as a spoken system design interview. Start by clarifying the scope, sketch a working design and explain the trade-offs behind your choices.

  • Show rows of data in columns that the team using the table configures, with their own cell content
  • Sort by a column and filter rows
  • Page or scroll through far more rows than fit on screen
  • Select one row, several, or all of them
  • Work in any language, and with a keyboard and a screen reader

Constraints to discuss

  • The table first draws in under 100 milliseconds
  • Scrolling stays at 60 frames a second, even with 100,000 rows
  • A sort or filter answers within 200 milliseconds, with a placeholder while the server works
  • Dates, numbers and text sort and show the way the reader's language expects
Need a starting point?

Watch for these common gaps as you prepare:

  • Drawing every row of a large table
  • Redrawing every row when one selection changes
  • Sorting one page in the browser while the server pages
  • A header that breaks when only nearby rows are drawn
  • No keyboard support
  • Select all that silently means every matching row
Read: Frontend system design interview questions, and who asks them

Why this question is in the collection

These sources connect the problem to company interview reports or preparation guides. They do not guarantee what a company will ask you.

Your next question

AI systemsDesign a ChatGPT-style chat (frontend)Search and autocompleteDesign an autocomplete search box (frontend)CollaborationDesign a calendar (frontend)Messaging and notificationsDesign a chat app (frontend)
Browse the collection
01

Pick a question

Read the brief and choose what you want to work on.

02

Talk it through

Explain your thinking. Respond to follow-ups. Draw when a design needs it.

03

Find your next improvement

Use the feedback from your interview to decide what to practice next.