After: each component gets a budget
Sidebar
~25 rows
Browse
100/page
Cmd+K
50 rows
[[ autocomplete
prefix → ~20
Journal cal
3k (5min stale)
Mobile
200 rows
Search
30 rows
Settings
1 row
Server does the filtering — LIMIT + WHERE, not client JS
Max ~200 rows in heap at once