Repository source: docs/plans/archive/forte_board_reply_tree_step1_solution_assessment.md
Forte Board Reply Tree — Step 1: Solution Assessment
Problem
The board view's "Show N replies" button feels unnecessary and has a noticeably delayed response, since it lazily fetches each thread's reply tree over the network only after the reader clicks it.
Option A: Eagerly render every thread's replies on initial page load
Remove the toggle button and
/forte/threads/{id}/repliesendpoint entirely; server-render every thread's full reply tree inline in the initial/forteHTML, always visiblePros: fully eliminates the click-and-wait; simplest resulting code (no fetch, no cache, no expand/collapse state)
Cons: this board currently has 513 threads totaling 503 replies (one thread alone has 65) — embedding all of that in every
/fortepage load reintroduces the exact page-bloat concern the lazy-load endpoint was originally built to avoid (per its own code comment), even though most visits only ever open one or two threads
Option B: Auto-load replies immediately on thread selection (no button)
Remove the toggle button/collapsed state, but keep the existing per-thread
/forte/threads/{id}/repliesfetch — trigger it automatically the moment a thread is selected, so replies just appear under the thread body without an extra clickPros: removes the "unnecessary button" and the extra interaction step entirely; keeps the board's initial page payload exactly as small as today (only the selected thread's replies are ever fetched); no backend change needed, only client wiring
Cons: doesn't eliminate network latency itself — there's still a brief fetch after selecting a thread, just without a separate click to trigger it
Option C: Hybrid — eager for the initially-selected thread, auto-load for the rest
Server pre-renders replies inline only for whichever thread is selected via the existing
?selected=URL state (e.g., right after replying); any other thread picked afterward uses Option B's auto-fetch-on-selectPros: zero latency for the one case that matters most today (returning to a thread right after replying); otherwise same footprint as Option B
Cons: two different code paths (server-rendered vs. client-fetched) for what should be the same UI; added complexity for a narrow benefit
Decision
Option A, per explicit user direction, overriding the initial recommendation (Option B). This fully eliminates the click-and-wait rather than just removing the extra click, accepting the added page weight as the trade-off — at this board's current scale (503 replies total across 513 threads), that's a modest amount of extra HTML, not the unbounded growth the original lazy-load comment was guarding against in the abstract.