When a page has lots of dynamic pieces but I still want “just refresh it” semantics, I use Turbo’s morphing refreshes. With turbo_refreshes_with method: :morph, Turbo updates the DOM by morphing rather than doing a full replace, which tends to preserve focus and reduce flicker. It’s especially nice on index pages where the user might be typing in a filter input while updates come in. I still keep the page mostly server-rendered, but I get a smoother experience close to an SPA. In practice, I pair this with caching and careful DOM IDs (dom_id) so morphing can match nodes deterministically.