Frontend System Design1 min readPremium

Design a Budgeting App – Frontend System Design

51. Design a Budgeting App

We’ll walk through the frontend system design for a personal budgeting app like YNAB: a web app where a household tracks every transaction, assigns money to categories each month, and sees what is left to spend. You’ll see why the browser’s IndexedDB is the source of truth instead of the server, why money is never a float, how the envelope math stays instant with ten years of history, and how two partners editing the same transaction on two offline phones end up with the same numbers.

This question looks like CRUD. It isn’t. The interviewer is waiting to see whether you notice three traps: floating-point money, totals that are recomputed from all history on every keystroke, and a sync story that silently loses someone’s edit to a dollar amount.

Problem Statement

Design the frontend for a personal budgeting web app like YNAB or Mint.

Requirements:

  • Accounts (checking, savings, credit cards, cash) with a transaction register
  • Envelope budgeting: assign money to categories each month and see what is available
  • Import transactions from... 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