Turbo Frames can trigger lots of small requests, so caching matters. For expensive frame endpoints (like an activity panel), I use stale? with an ETag that includes a cache key and the latest update timestamp. If the content hasn’t changed, Rails returns 304 Not Modified and Turbo keeps the existing DOM. This can reduce server load dramatically for users who navigate around but keep the same side panel. The important detail is choosing a good ETag: include the user boundary and any relevant query params. I also pair this with includes to avoid N+1 when the panel does need to render. The result is a UI that feels live and snappy without constantly re-rendering the same HTML.