p0-search-filter-transactions

drafttype/backlog

p0 — Search/filter transactions on home page

Problem

Transaction history is scannable but not searchable. Looking up "that one Tokopedia charge from two weeks ago" requires scrolling or opening the filter modal — too much friction for a daily-driver app.

Outcome

A search bar on the home page that filters transactions by name/note in real time, with debouncing so it stays snappy as the list grows. Existing filter modal stays for date/category/amount.

Acceptance

  • [ ] Search input visible above the transaction list on / (home)
  • [ ] Filters by transaction name and note substring, case-insensitive
  • [ ] Debounced ~200ms; no jank on 1000+ transactions
  • [ ] Clears via × icon and Esc key
  • [ ] Empty-state copy when no matches

Implications

If skipped

  • Finding a past charge still means scrolling or opening the filter modal — the home page stays a poor daily-driver for “what was that Tokopedia payment?” Every extra 10–15 seconds per lookup adds up across the month and pushes you back to bank apps or spreadsheets for search.

Why this priority

  • p0 — home (/) is the primary session entry point. Search is a core lookup workflow for a finance tracker used daily; without it, the product feels incomplete at launch compared to bank apps and Notion exports you already use.

When shipped

  • Home becomes self-sufficient for name/note lookup; modal filters stay for structured slices (date, category, amount).

Notes

  • Existing filter logic lives in the home page server action / client component split — extend rather than rebuild.
  • Consider folding the modal's date/category controls into a single dropdown later (out of scope here).

Source

docs/todo.md — High Priority › Transaction Management.