<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="358616" data-post-id="358616">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LostKobrakai" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LostKobrakai/120/3072_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LostKobrakai
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ErikNaslund" data-post="54" data-topic="69772">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eriknaslund/48/26390_2.png" class="avatar"> ErikNaslund:</div>
<blockquote>
<p><strong>Just calling the non-live one just <code>View</code> doesn’t quite do the trick for me.</strong> It’s like having “LargeCat” and “SmallCat”, but for some reason referring to “LargeCat” as just “Cat” in everyday language. They’re distinct, and none of them are any “more cat” than the other <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> . (&lt;/end of already halting cat analogy&gt;)</p>
</blockquote>
</aside>
<p>While I do agree with the fact that <code>DeadView</code> might not be the best term to be used in conversations I don’t really agree with the notion that <code>Views</code> and <code>LiveView</code> are terms at the same level of abstraction (as in: both being cats).</p>
<p>LiveViews are not a subset or category of views, where the other half would be called [Something]View – and somehow wouldn’t fit the live prefix.</p>
<p>Rather LiveViews – as a alternative to controllers – make views live by wrapping a live’ying shell around an underlying view. Both controllers and LiveViews use views as a component to their working. With the introduction of heex that became even more apparent as the implementation detail of needing to support change tracking got baked into the default way of building html views on phoenix.</p>
<p>Imo to the decrement of clear separation LV happened to also really early on start embedding the view layer of phoenix into LV modules to enable co-located templates. At the time it made sense given LV needed it’s own separate templates anyways (see change tracking), but it muddied the fact that views are still a separate layer and LiveView not really being a type of view.</p>
<p>This can still be made explicit though by doing the following in a LiveView to mimic how controllers would commonly reference the views they use.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">@impl Phoenix.LiveView
def render(assigns), do: MyAppWeb.BlogHTML.index(assigns)
</code></pre>
<p>Change tracking is also the reason for <code>Phoenix.Component</code> (see no namespacing to liveview) being developed within the <code>phoenix_live_view</code> library. Without that implementation detail it, together with heex, would likely have been part of <code>phoenix_html</code>, given they’re related to building html views no matter if used by a controller or liveview in the end.</p>
<p>So TLDR: LiveViews are not called views for being a subset of views, but because it being a technology to make views live updating.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358616" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/72">Post #71</a>
	                </div>
	            </div>
              <div id="likers-container-358616" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358616"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #71"></div>
  </section>
</div>
    <div class="postbit" id="358619" data-post-id="358619">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hubertlepicki" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hubertlepicki/120/6822_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hubertlepicki
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think you’re very close to pin-pointing the core issue here that LiveViews are not part of the same MVC infrastructure and stack as the regular views.</p>
<p>It gets even more complicated as LiveViews can be rendered <em>inside</em> traditional Views, and both can render Phoenix Components internally.</p>
<p>This means there are multiple ways of doing things depending on which route you choose: with Phoenix controllers or LiveViews.</p>
<p>I understand why is that but from the simplicity standpoint it would be less confusing also in the language aspect if we had one way of doing things.</p>
<p>Maybe it’s time to abandon the MVC paradigm and/or integrate Phoenix Controller functionality with Phoenix LiveView functionality into one solution.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358619" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/73">Post #72</a>
	                </div>
	            </div>
              <div id="likers-container-358619" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358619"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #72"></div>
  </section>
</div>
    <div class="postbit" id="358620" data-post-id="358620">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LostKobrakai" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LostKobrakai/120/3072_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LostKobrakai
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="hubertlepicki" data-post="73" data-topic="69772">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hubertlepicki/48/6822_2.png" class="avatar"> hubertlepicki:</div>
<blockquote>
<p>It gets even more complicated as LiveViews can be rendered <em>inside</em> traditional Views, and both can render Phoenix Components internally.</p>
</blockquote>
</aside>
<p>Just like you can iframe another controller rendering another view. Maybe I never grasped “traditional MVC” enough, but to me a view layer is about translating data to a response format like HTML. That’s no different between LiveView or a controller.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358620" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/74">Post #73</a>
	                </div>
	            </div>
              <div id="likers-container-358620" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358620"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #73"></div>
  </section>
</div>
    <div class="postbit" id="358634" data-post-id="358634">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ErikNaslund" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ErikNaslund/120/26390_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ErikNaslund
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Very interesting point - I never thought about it that way…but if I do, things start making a lot more sense! I think you really nailed it with:</p>
<blockquote>
<p>LiveViews are not called views for being a subset of views, but because it being a technology to make views live updating.</p>
</blockquote>
<p>I scoured Elixiforum and Reddit to see what people were already calling it and this is some of what I found (names for non-live views):</p>
<ul>
<li>Controller + Template</li>
<li>Stateless View</li>
<li>Client/Server</li>
<li>DeadView</li>
<li>View</li>
</ul>
<p>The one that resonates the most with me of those is <strong>Stateless View</strong>. Reason being that it ties in nicely with the (well known?) fact that “HTTP is a stateless protocol”, so it kinda sets the expectation that this thing has a simple request/response cycle without any fancy icing on top.</p>
<p>I think the naming matters less the more accustomed you become to the ecosystem. I’ve been doing Phoenix for about 2-3 years now, so it doesn’t bother me any more. However, I do remember having big issues knowing what to google when I tried to figure out the difference between the two options, simply because people used all sorts of different terms for the non-live views.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358634" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/75">Post #74</a>
	                </div>
	            </div>
              <div id="likers-container-358634" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358634"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #74"></div>
  </section>
</div>
    <div class="postbit" id="358644" data-post-id="358644">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think “view” part of LiveView is a little more hidden.  I think Phoenix’s MVC initially (and probably still) threw a lot of people—at least who came from Rails—because it had an actual “proper” view layer that was different from templates instead of conflating the two.  In LiveView, the view layer is less tangible and any custom view logic usually ends up in the form of private functions (be they formatters or components).</p>
<p>TL;DR, you’re absolutely right that LiveViews are not subsets of views.  I often end up calling them controllers depending on the context of the discussion.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358644" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/76">Post #75</a>
	                </div>
	            </div>
              <div id="likers-container-358644" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358644"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #75"></div>
  </section>
</div>
    <div class="postbit" id="358645" data-post-id="358645">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="stefanluptak" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/stefanluptak/120/34398_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  stefanluptak
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Not sure if it was mentioned, but to me dead is something that was alive but is not anymore. In this context, even the DeadView term seems to be not correct.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358645" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/77">Post #76</a>
	                </div>
	            </div>
              <div id="likers-container-358645" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358645"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #76"></div>
  </section>
</div>
    <div class="postbit" id="358659" data-post-id="358659">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I read this late last night and forgot but yes, you caught me—I was totally trying to “quote” this <img src="https://forum.elixirforum.com/images/emoji/apple/upside_down_face.png?v=15" title=":upside_down_face:" class="emoji" alt=":upside_down_face:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358659" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/78">Post #77</a>
	                </div>
	            </div>
              <div id="likers-container-358659" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358659"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #77"></div>
  </section>
</div>
    <div class="postbit" id="358703" data-post-id="358703">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="coladarci" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/coladarci/120/8394_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  coladarci
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>“Have you tried doing this as a non-LiveView” feels 100% fine; I’m not sure why it needs a name in the first place, so creating a NEW name and trying to police it feels like an anti pattern.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358703" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/79">Post #78</a>
	                </div>
	            </div>
              <div id="likers-container-358703" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358703"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #78"></div>
  </section>
</div>
    <div class="postbit" id="358704" data-post-id="358704">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="thiagomajesk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thiagomajesk/120/31904_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  thiagomajesk
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="kernel" data-post="60" data-topic="69772" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kernel/48/35042_2.png" class="avatar"> kernel:</div>
<blockquote>
<p>Apologies if this comes across a bit too frankly, but I think this is an terrible proposal, surely there are more important things to focus on.</p>
</blockquote>
</aside>
<p>This is a non-issue for me since “DeadView” having a negative connotation is a completely subjective matter… As <a class="mention" href="/u/sodapopcan" rel="nofollow">@sodapopcan</a> mentioned it already perfectly describes what would be the opposite of a “LiveView”, it’s fine to have symmetry.</p>
<p>IMO, I think it’s just fine to use it, and the fact we have collectively adopted it as an informal term shows me that it’s intuitive enough. Also, even if the docs don’t necessarily adopt that terminology, quite frankly, I do think there are more productive ways to spend our collective energy.</p>
<aside class="quote no-group" data-username="coladarci" data-post="79" data-topic="69772" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/coladarci/48/8394_2.png" class="avatar"> coladarci:</div>
<blockquote>
<p>“Have you tried doing this as a non-LiveView” feels 100% fine; I’m not sure why it needs a name in the first place, so creating a NEW name and trying to police it feels like an anti pattern.</p>
</blockquote>
</aside>
<p>I 100% agree with this and overall (this might sound a bit harsh) I don’t think these discussions usually end up being that productive because it’s a hypothetical problem that doesn’t really affect anyone!? (I’d have to see actual proof that this is an actual adoption issue before changing opinions).</p>
<p>My recommendation is that if you don’t like the term, you can personally refrain from using it because the chances to find a “better” alternative that everyone agrees on are slim to none <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20">.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358704" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/80">Post #79</a>
	                </div>
	            </div>
              <div id="likers-container-358704" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358704"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #79"></div>
  </section>
</div>
    <div class="postbit" id="358736" data-post-id="358736">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="JonRowe" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/JonRowe/120/39163_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  JonRowe
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve always referred to it as a static view or static pass to disambiguate, the docs use similar language calling it the static page before we connect, but I also sort of like plain view even if it has a “plain old ruby object” feel to it…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="358736" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/proposal-refrain-from-using-deadview-endorse-an-alternative/69772/81">Post #80</a>
	                </div>
	            </div>
              <div id="likers-container-358736" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="358736"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #80"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/69772/load_more?page=9">Load more posts (8 remaining)</a>
</div></template></turbo-stream>