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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I prefer the complete separation of server and frontend code. I have just looked into <code>surface-ui</code>, interesting but still just cannot tolerate all that <code>HTML</code> code in Elixir files. For me, <code>Elixir</code> and <code>Phoenix</code> are great on the backend. For the front I prefer <code>Vue</code>. Interesting to hear <em>[some 4 years on]</em> any updates / experiences from fellow developers on the topic <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"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312249" 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/help-me-choose-between-liveview-and-vue/30001/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-312249" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312249"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="312263" data-post-id="312263">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>just cannot tolerate all that <code>HTML</code> code in Elixir files.</p>
</blockquote>
<p>Interesting, for me this is the best part - having all FE in one file - html, css, js. BE is another file, context.<br>
Simple, elegant. It seems you’re used to the old way, but I would argue the new way is the better way. Surface brought this in and it could’ve stayed that way, yet the phoenix team integerated it to phoenix. I’m glad they did, I feel it was the right call and is in accordance with all the previous decisions. DDD affords least cognitive load and that’s the second line on which to seperate code by, anything beyond that is unnecessary IMO.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312263" 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/help-me-choose-between-liveview-and-vue/30001/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-312263" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312263"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="312270" data-post-id="312270">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve only created small project with LiveView but two things that you can’t get with Vue. First is that you don’t have write any kind of web facing API and you do less database call because everything is basically in same request. Not to forget lot of saved development time from this. Second it’s really easy to sync realtime browser elements between clients. I created this RPG helper that needs to keep every client in sync, meaning everyone needs to see same things in their browser. I just used Phoenix.PubSub at server side and it worked like magic.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312270" 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/help-me-choose-between-liveview-and-vue/30001/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-312270" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312270"
                     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 #13"></div>
  </section>
</div>
    <div class="postbit" id="312312" data-post-id="312312">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adw632" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adw632
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Given there is not a viable UI component framework for Phoenix currently that makes it the hard road.</p>
<p>If you look at React, Vue or Svelte then you do have viable UI frameworks to build web applications.</p>
<p>I am in the middle still and experimenting with custom elements aka web components along with live_element to help with event forwarding.  There are quite a few web component libraries out there providing nice custom elements and theming and these are also not front end JS frameworks and work just like html elements but can do fancy stuff on the client. You can literally wrap anything in a custom element very easily so I think this gives the live view architecture quite a leg up in what can be achieved.</p>
<p>I also looked at live-svelte as an option but it has several serious issues with nested components which kind of killed it as a viable approach.</p>
<p>If I was to go full client side JS, my pick is SvelteKit with Shadcn-Svelt as my for UI. Of course you have Devs skilled in Vue so it makes sense to take that path.</p>
<p>I also like regular Svelte (which is distinct from SveltKit) because it compiles to minimal code for surgical DOM updates and is very streamlined in how it works with practically no boiler plate. I think wrapping Svelte components as custom elements / web components is a nice way to enhance LiveView using a disappearing  JS framework and I also like Lit Element as a way to wrap anything and for implementing custom elements without a JS framework.</p>
<p>So in summary I think web components are the future, JS frameworks will evaporate to bare minimums to reduce boilerplate for PWAs, so routing, state management and support for theming, styling and animation.</p>
<p>Even Adobe have bet the farm on web components with their new design language and web component library <a href="https://s2.spectrum.adobe.com/" rel="noopener nofollow ugc">Spectrum 2</a>. Also Microsoft have <a href="https://www.theverge.com/2023/10/6/23906082/microsoft-windows-app-store-web-version-launch" rel="noopener nofollow ugc">built their Web App Store</a> using <a href="https://shoelace.style/" rel="noopener nofollow ugc">Shoelace</a> web components.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312312" 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/help-me-choose-between-liveview-and-vue/30001/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-312312" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312312"
                     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 #14"></div>
  </section>
</div>
    <div class="postbit" id="312321" data-post-id="312321">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tme_317" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tme_317
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adw632" data-post="15" data-topic="30001">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/9d8465/48.png" class="avatar"> adw632:</div>
<blockquote>
<p>Given there is not a viable UI component framework for Phoenix currently that makes it the hard road.</p>
</blockquote>
</aside>
<p>There is <a href="https://github.com/petalframework/petal_components" class="inline-onebox" rel="noopener nofollow ugc">GitHub - petalframework/petal_components: Phoenix + Live View HEEX Components · GitHub</a> which is what I’m using.  I’m sure it’s not as full-featured as some of the huge React, Vue, etc component frameworks but it is viable enough for my use case.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312321" 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/help-me-choose-between-liveview-and-vue/30001/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-312321" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312321"
                     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 #15"></div>
  </section>
</div>
    <div class="postbit" id="312358" data-post-id="312358">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adw632" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adw632
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="tme_317" data-post="16" data-topic="30001">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/t/0ea827/48.png" class="avatar"> tme_317:</div>
<blockquote>
<p>There is <a href="https://github.com/petalframework/petal_components" rel="noopener nofollow ugc">GitHub - petalframework/petal_components: Phoenix + Live View HEEX Components </a> which is what I’m using. I’m sure it’s not as full-featured as some of the huge React, Vue, etc component frameworks but it is viable enough for my use case.</p>
</blockquote>
</aside>
<p>Yes that meets the definition of <strong>not a viable framework</strong>.</p>
<ul>
<li>It bakes in theme and style</li>
<li>It’s not semantic</li>
<li>Design tokens?</li>
<li>Doesn’t focus on compliance with accessibility standards which are generally a requirement nowadays for anything not hobby related</li>
<li>Keyboard navigation?</li>
<li>it bakes in the CSS framework</li>
<li><strong>it is a funnel to commercial offering</strong>.</li>
<li>It is not something the community can rally around</li>
</ul>
<p>We are left with the stop gap of core components for the generators <em>as the best we got</em> and being a maintenance issue if you use them. They are insufficient for any typical application use cases.</p>
<p>I stand by what I said there is not a viable UI component framework for LiveView and it’s left two options moving forward which is to use a mature set of custom elements / web components or go fully JS front end.</p>
<p>I am experimenting with trying to keep Liveview but it’s basically on life support and I might just go with a Svelte solution because it’s quicker and supports more flexible use cases.</p>
<p>In my mind it’s almost an <strong>existential crisis for LiveView</strong>. Without a viable set of headless accessibility focused UI components LiveView can never be the productive path to building web apps that don’t have appalling usability and inefficient development. The time to an accessible, themeable, navigable app shell with all the trimmings, authentication, notifications, should be minutes. That’s what you’re up against vs a productive JS front end.</p>
<p>If you are doing hobby projects and tinkering then practically anything will be fine, but the regulations in many countries to have accessible applications and to be commercially viable you have to deliver on the table stakes which LiveView currently doesn’t.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312358" data-batch-url="/posts/batch_likers">
                        7
                      </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/help-me-choose-between-liveview-and-vue/30001/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-312358" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312358"
                     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 #16"></div>
  </section>
</div>
    <div class="postbit" id="312359" data-post-id="312359">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Live View 100% unless you need offline support for some reason</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312359" 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/help-me-choose-between-liveview-and-vue/30001/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-312359" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312359"
                     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 #17"></div>
  </section>
</div>
    <div class="postbit" id="312360" data-post-id="312360">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I dream of the day when we will stop designing interfaces like cavemen in html+css and have an all around great visual tooling.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312360" 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/help-me-choose-between-liveview-and-vue/30001/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-312360" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312360"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="312364" data-post-id="312364">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adw632" data-post="17" data-topic="30001">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/9d8465/48.png" class="avatar"> adw632:</div>
<blockquote>
<p>If you are doing hobby projects and tinkering then practically anything will be fine</p>
</blockquote>
</aside>
<p>Please don’t be condescending. Most people here do not play with hobby project and do real work</p>
<p>We know from the start that liveview cannot fit all situation, and cannot compete with JS frontend (offline mode, service workers…) but JS world is far from being perfect and It adds complexity. Liveview is simple to integrate and fits some usecase, maybe not yours</p>
<p>Any JS UI library could be written with liveview components, it is just HTML, JS and CSS</p>
<p>Liveview did not even hit version 1.0. It’s unfair to compare with long established JS framework</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312364" data-batch-url="/posts/batch_likers">
                        8
                      </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/help-me-choose-between-liveview-and-vue/30001/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-312364" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312364"
                     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 #19"></div>
  </section>
</div>
    <div class="postbit" id="312366" data-post-id="312366">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="adw632" data-post="17" data-topic="30001">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/9d8465/48.png" class="avatar"> adw632:</div>
<blockquote>
<p><strong>it is a funnel to commercial offering</strong>.</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="adw632" data-post="17" data-topic="30001">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/9d8465/48.png" class="avatar"> adw632:</div>
<blockquote>
<p>If you are doing hobby projects and tinkering then practically anything will be fine, but the regulations in many countries to have accessible applications and to be commercially viable you have to deliver on the table stakes which LiveView currently doesn’t.</p>
</blockquote>
</aside>
<p>You emphasized the funnel to commercial offerings but are arguing that liveview is only for hobby projects? And doesn’t work for commercial applications.</p>
<p>Surely if you’re building a commercial application, you’re willing to pay a license for an important part of your stack?</p>
<p>I didn’t evaluate the rest of your response but this stood out to me.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="312366" 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/help-me-choose-between-liveview-and-vue/30001/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-312366" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="312366"
                     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 #20"></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/30001/load_more?page=3">Load more posts (41 remaining)</a>
</div></template></turbo-stream>