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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is an excellent breakdown, thank you for writing it! However, I think we need to settle on the main use case for LiveView here which is not to go head on with JS attempting to replace it, but rather provide a first step into having interactive UIs, similar to what Rails initially had with RJS. The fact that LV provides hooks  by leveraging JS libs that already exist can already get you to a good middle ground, without that I don’t think there would even be a discussion.</p>
<p>I agree that it would be madness to even consider LiveView, which is not even 1.0 yet, on any mid to large size projects, but still think it is much more viable when boostraping an idea with a few developers. This is quite uncharted territory, though, as you mentioned, most UI devs know JS and would be very uncomfortable with the idea of learning a functional programming like Elixir, so the path of least resistance would be to just stick with the status quo, as it is with any other new idea.</p>
<p>What worries me a bit is that we are already so far out in web development that any app that wants to compete in the space needs to be really polished, and the tools to get that polish are all deeply ingrained in the JS ecosystem, so competing in this space seems a bit futile. My bet is that LV will really shine in development time for apps that will take full advantage of all the connectivity benefits that Elixir provides, we just haven’t seen much of this new class of apps yet.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191855" 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/phoenix-liveview-vs-spa/34743/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-191855" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191855"
                     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 #32"></div>
  </section>
</div>
    <div class="postbit" id="191858" data-post-id="191858">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I was going to jump in to mention your second point.</p>
<p>I might not be a UI dev, but paired with material-ui, semantic-ui-react, blueprintjs, or AntD I feel extremely productive, and can build pretty compelling UIs. And feel like assembling Lego!</p>
<p>Now LiveView has none of that, I am left reinventing alot, and having to do a bunch of CSS to make it look good. All of which comes out of the box in the toolkits mentioned above.</p>
<p>People have had success with CSS only ui frameworks in liveview..but not sure that really cuts it…</p>
<p>Surface and component library ideas for LiveView would help, but who is gonna do all that? All the UI people are busy writing JS + CSS <img src="https://forum.elixirforum.com/images/emoji/apple/confused.png?v=15" title=":confused:" class="emoji" alt=":confused:" 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="191858" 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/phoenix-liveview-vs-spa/34743/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-191858" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191858"
                     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 #33"></div>
  </section>
</div>
    <div class="postbit" id="191860" data-post-id="191860">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>What would a LiveView “components” library look like? Would it just be a thin wrapper over some CSS like the <a href="https://mildrenben.github.io/surface/" rel="noopener nofollow ugc">Surface framework</a>? Or something that compiles down to HTML+CSS in the manner of the excellent <a href="https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/" rel="noopener nofollow ugc">elm-ui package</a> for elm?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191860" 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/phoenix-liveview-vs-spa/34743/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-191860" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191860"
                     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 #34"></div>
  </section>
</div>
    <div class="postbit" id="191863" data-post-id="191863">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Take a look at <a href="https://blueprintjs.com/" rel="noopener nofollow ugc">https://blueprintjs.com/</a></p>
<p>Replace ‘React-based UI toolkit’, with LiveView UI Toolkit.</p>
<p>CSS is a large part of it…and the interactive bits are all JS. So I imagine a LiveView UI toolkit’ would be pretty much the same with less or no JS? EDIT: So yea, Surface is the right idea - but still writing CSS or at least manipulating CSS…a proper <code>web-component</code> either native or with something like React - can abstract away pretty much all the internals, leaving you with some prop based API that does all the class toggling or whatever as an implementation detail</p>
<p>The elm UI package describes the result of such a toolkit’</p>
<blockquote>
<p>This library is a complete alternative to HTML and CSS. Basically you can just write your app using this library and (mostly) never have to think about HTML and CSS again.</p>
</blockquote> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191863" 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/phoenix-liveview-vs-spa/34743/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-191863" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191863"
                     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 #35"></div>
  </section>
</div>
    <div class="postbit" id="191865" data-post-id="191865">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bjunc" data-post="32" data-topic="34743">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bjunc/48/16781_2.png" class="avatar"> bjunc:</div>
<blockquote>
<p>Like I said, for smaller / marketing projects, blogs, etc., LiveView could definitely work. For larger projects (or ones that could grow into larger projects), I don’t yet see LiveView as a viable replacement.</p>
</blockquote>
</aside>
<p>I agree with you about the rest, but I don’t think it’s a small/large project thing. Many large projects do not need offline support, nor app support, and are not SPA, like online shopping malls. Conversely, lots of small projects benefit from offline support, including blogs.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191865" 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/phoenix-liveview-vs-spa/34743/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-191865" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191865"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="191868" data-post-id="191868">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks to the comments in this thread (as well as the one on <a href="https://forum.devtalk.com/t/are-spas-dying-or-becoming-more-popular-beginning-to-shine/2913" rel="nofollow">Devtalk</a>) along with being able to use TypeScript instead of JS (the stubborn part of me wants to avoid ‘js’ at all costs - even if by just its name!) I’ve decided to give SPAs another look.</p>
<p>After reading the comments <a href="https://forum.devtalk.com/t/svelte-what-do-you-think-about-it/808" rel="nofollow">in this thread</a>, Svelte looks really promising and appears to be gaining in popularity the most right now.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191868" 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/phoenix-liveview-vs-spa/34743/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-191868" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191868"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="191871" data-post-id="191871">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In m opinion, LiveView needs two major things to really be viable.</p>
<p><strong>“Live View Components”</strong><br>
A dedicated “single file component” consisting of language blocks. You might have an HTML block (eex), CSS (scss), a script block (JS that tapped into hooks), and an Elixir block (the LiveView code we’re familiar with).  The combination of these blocks into a single file makes things considerably more maintainable, in my experience with Vue’s Single File Components (SFC).  I think someone is already attempting to do this in the spirit of Vue. It is important that on compile, these blocks get intelligently broken out into bundled files and loaded when applicable.  As a simply example, the “about page” component’s CSS should load only when the user navigates to that page, but this concept has been used for extremely proficient page loads (extreme CSS / above the fold CSS, etc.).</p>
<p><strong>Decoupled JS library</strong><br>
The front-end code to LiveView should be broken into two distinct parts. This would open up a world of hybrid apps where LiveView could live side by side SPA logic. Interoperability would help teams integrate LiveView in an iterative way as opposed to a mutually exclusive way (as it feels now).</p>
<ol>
<li>
<p>The communication library between the browser and the Elixir server. There should be NO presentation layer logic.  Not just hooks, but full-blown event system. This could be layered with “reactivity” and caching libraries.</p>
</li>
<li>
<p>A basic (opinionated) presentation layer.  Essentially what we have now, but it can swapped out for Vue, React, Stencil, something custom.</p>
</li>
</ol>
<p>With the two things above, I think a lot of the pieces would fall into place and other aspects would resolve themselves.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191871" data-batch-url="/posts/batch_likers">
                        9
                      </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/phoenix-liveview-vs-spa/34743/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-191871" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191871"
                     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 #38"></div>
  </section>
</div>
    <div class="postbit" id="191872" data-post-id="191872">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hooks aren’t sufficient, IMO.  LiveView needs to be fully agnostic / unopinionated to the presentation layer; with an optional lightweight UI library. See my other answer on what this would enable.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191872" 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/phoenix-liveview-vs-spa/34743/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-191872" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191872"
                     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 #39"></div>
  </section>
</div>
    <div class="postbit" id="191875" data-post-id="191875">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bjunc" data-post="39" data-topic="34743">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bjunc/48/16781_2.png" class="avatar"> bjunc:</div>
<blockquote>
<p>The communication library between the browser and the Elixir server. There should be NO presentation layer logic. Not just hooks, but full-blown event system. This could be layered with “reactivity” and caching libraries.</p>
</blockquote>
</aside>
<p>we’ve started a project called LiveData, to explore these ideas. It exposes server side state in a nice API to be consumed via React or whatever. Join us on slack, <a class="hashtag-cooked" href="/tag/livedata/3516" data-type="tag" data-slug="livedata" data-id="3516" data-style-type="icon" data-icon="tag" rel="nofollow"><span class="hashtag-icon-placeholder"><svg class="fa d-icon d-icon-square-full svg-icon svg-node"><use href="#square-full"></use></svg></span><span>livedata</span></a></p>
<p><a href="https://github.com/surferseo/live_data" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/surferseo/live_data</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191875" data-batch-url="/posts/batch_likers">
                        6
                      </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/phoenix-liveview-vs-spa/34743/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-191875" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191875"
                     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 #40"></div>
  </section>
</div>
    <div class="postbit" id="191883" data-post-id="191883">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bjunc" data-post="39" data-topic="34743">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bjunc/48/16781_2.png" class="avatar"> bjunc:</div>
<blockquote>
<p>I think someone is already attempting to do this in the spirit of Vue. It is important that on compile, these blocks get intelligently broken out into bundled files and loaded when applicable. As a simply example, the “about page” component’s CSS should load only when the user navigates to that page, but this concept has been used for extremely proficient page loads (extreme CSS / above the fold CSS, etc.).</p>
</blockquote>
</aside>
<p>Theres a recent js library called <code>uce-template</code>, it’s more or less like that but without bundling.</p>
<aside class="quote no-group" data-username="bjunc" data-post="39" data-topic="34743">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bjunc/48/16781_2.png" class="avatar"> bjunc:</div>
<blockquote>
<p>The front-end code to LiveView should be broken into two distinct parts. This would open up a world of hybrid apps where LiveView could live side by side SPA logic. Interoperability would help teams integrate LiveView in an iterative way as opposed to a mutually exclusive way (as it feels now).</p>
<ol>
<li>The communication library between the browser and the Elixir server. There should be NO presentation layer logic. Not just hooks, but full-blown event system. This could be layered with “reactivity” and caching libraries.</li>
<li>A basic (opinionated) presentation layer. Essentially what we have now, but it can swapped out for Vue, React, Stencil, something custom.</li>
</ol>
</blockquote>
</aside>
<p>At that point, wouldnt that mean completely dropping liveview and just using channels? You subscribe to a channel with an observable/stream and thats all. Maybe I’m missing something on your idea.</p>
<p>The most painful point in my experiencie is the need to share templates between js components and phoenix, dom diffing is already a solved problem</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191883" 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/phoenix-liveview-vs-spa/34743/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-191883" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191883"
                     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 #41"></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/34743/load_more?page=5">Load more posts (50 remaining)</a>
</div></template></turbo-stream>