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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="gfviegas" data-post="8" 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/gfviegas/48/20448_2.png" class="avatar"> gfviegas:</div>
<blockquote>
<p>With that said, I guess you should first pick SSR vs SPA for a given project, and there’s the pros and cons for each pick, and then, only then, analyze if you should use liveview or not.</p>
</blockquote>
</aside>
<p>This is a good point.</p>
<p>LiveView is simply an impossible pick when you need your application to be offline capable.<br>
And it’s also possibly not a good fit, when you have a heterogeneous backend infrastructure. For example we have legacy services that are not really portable to Elixir. So we just keep them running and use their API from the client. This would be much more challenging using LiveView.</p>
<p>That being said, I think LiveView is nearly unbeatable when it comes to simplicity and iteration speed. The only thing that currently keeps me from using it for new projects is maturity: authentication and session management are not yet fully standardized/understood (for example), using large frontend libraries (like e. g. ProseMirror) is not really ergonomic and stuff like that. But I’m pretty sure that solving these issues is only a matter of time.</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="mmmrrr" data-post="12" 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/mmmrrr/48/12227_2.png" class="avatar"> mmmrrr:</div>
<blockquote>
<p>using large frontend libraries (like e. g. ProseMirror) is not really ergonomic</p>
</blockquote>
</aside>
<p>Hi <a class="mention" href="/u/mmmrrr" rel="nofollow">@mmmrrr</a>, could you help me understand the ergonomics concern a bit better? I haven’t worked with a library like this yet. Thank you!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191125" 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/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-191125" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191125"
                     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="191177" data-post-id="191177">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Sure, I’ll try!</p>
<p>ProseMirror maintains it’s own internal state and rendering of that state. This is great, but in LiveView you now need some way of sending this state to the server. And since this internal state is relatively complex, you would probably not want to serialize the whole data model on every keyDown event and send it over the websocket.</p>
<p>That is not to say it is impossible, it is just not <em>ergonomic</em> and <em>obvious</em> in that you have to think about setting up a hook, think about when to send data to the server and think about reloading situations in which you may loose data.</p>
<p>In a single page application you typically have a local application state to begin with, so you have to deal with these problems from the start. That’s why you have established, well understood patterns on how to deal with these situations in SPAs. On the other hand: this extra layer makes everything much more complex and this is precisely why LiveView will typically be faster to develop with.</p>
<p>In summary: Depending on your situation, you cannot escape maintaining application state purely in the frontend. In these scenarios LiveView might, or might not, be a good pick for you and your team.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191177" 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/phoenix-liveview-vs-spa/34743/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-191177" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191177"
                     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="191193" data-post-id="191193">
  <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>This is something a few of us are working on actually…<br>
Checkout <a class="mention" href="/u/methyl" rel="nofollow">@methyl</a> s Todo POC demo: <a href="https://github.com/surferseo/livedata_todomvc" class="inline-onebox" rel="noopener nofollow ugc">GitHub - surferseo/livedata_todomvc · GitHub</a></p>
<aside class="quote quote-modified" data-post="9" data-topic="33992">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/methyl/48/12947_2.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/json-with-liveview/33992/9" rel="nofollow">JSON with LiveView</a> <a class="badge-category__wrapper " href="/c/questions-help/questions/53" rel="nofollow"><span data-category-id="53" style="--category-badge-color: #C14BFB; --category-badge-text-color: #000000; --parent-category-badge-color: #C14BFB;" data-parent-category-id="171" data-drop-close="true" class="badge-category --style-square --has-parent" title="Elixir Questions / Help"><span class="badge-category__name">Questions</span></span></a>
    </div>
  </div>
  <blockquote>
    Hey there. 
I actually think it’s an idea with a lot of potential and use-cases that could be supported either in LiveView or as a separate library. 
Being able to use whole React ecosystem while keeping the state in sync with your GenServers (or other abstraction) is something that we already experimented with. Take a look at this repo: <a href="https://github.com/surferseo/livedata_todomvc" class="inline-onebox-loading" rel="noopener nofollow ugc">https://github.com/surferseo/livedata_todomvc</a> which is a proof of concept for the idea. 
While the POC implementation is hideous, the API is really clean and po…
  </blockquote>
</aside>

<p>Our main focus is react at the moment, but ideally it will be a relatively thin wrapper around Phoenix Sockets + channels..</p>
<p>Here is a look at an early react hook API:<br>
<a href="https://github.com/surferseo/livedata_todomvc/blob/master/assets/js/containers/TodoList.js#L22-L26" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/surferseo/livedata_todomvc/blob/master/assets/js/containers/TodoList.js#L22-L26</a></p>
<p>This is still limited to serializable values, but is a more ergonomic API for accessing server side state from frontend JS than what is required with the current version of live_view.</p>
<p>join us in the <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> slack channel if you’re interested in helping out!</p>
<p>The goal of this effort is a live_view(ssr) ↔ SPA middle ground… that lets elixir devs keep more state on the server, but still benefit from all the effort poured into the react/angular/vue(name your framework here) front end UI libraries.</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks <a class="mention" href="/u/mmmrrr" rel="nofollow">@mmmrrr</a>, this is very helpful context for me!</p>
<p>I really like Liveview and am currently working on pulling together / understanding the various puzzle pieces needed to make it a natural “go to”. I feel like I’m at the cusp of tremendous productivity/speed once it’s all in place. My core list includes the following at the moment:</p>
<ul>
<li>
<p>Auth (as you also mentioned) &amp; permissions (my focus will be on the built in auth generator, and maybe a library like canada).</p>
</li>
<li>
<p>More clarity around preserving a good user experience with rolling server restarts / server outages. I think most of the pieces are there, but I need to develop a better understanding for how to use them exactly.</p>
</li>
<li>
<p>A set of js helpers for latency-sensitive things like menu/modal open/close, tab switching, transitions, etc, like Alpine.js (but without the unsafe-eval concern currently in Alpine). I’m building this myself at the moment due to the mentioned security concern, certainly a good learning experience, but it is also slowing me down a bit. If Alpine addresses their issue, I would probably switch to that.</p>
</li>
</ul>
<p>Thanks also to all the other posters in this thread, I have found this an exceedingly helpful discussion, and it has broadened my mind to think more openly about potentially having React (and its large ecosystem) in my toolset additionally (till now I was exclusively focused on Liveview).</p>
<p>Also, very helpful thoughts about APIs and mobile to be considered also, and the tradeoffs of not starting with an API. Interestingly, I’m finding that making tradeoffs is starting to become a core competency of a maturing software developer <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_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="191221" 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/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-191221" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191221"
                     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="191235" data-post-id="191235">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Btw, for the Auth item that you’re looking to explore, Bruce Tate has a good video on using phx.gen.auth with LiveView, <a href="https://youtu.be/YlDO07P3oL0" rel="noopener nofollow ugc">https://youtu.be/YlDO07P3oL0</a>, around the 34 minute mark he specifically discusses how to go about using the tokens with liveview.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191235" data-batch-url="/posts/batch_likers">
                        5
                      </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/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-191235" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191235"
                     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="191248" data-post-id="191248">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Early stage barriers to success on the web are typically time-based.  You need to rapidly find the right solution that will draw customers/eyeballs.  You need to be able to put features up quickly and iterate as rapidly as possible to find what will draw people in to your web application.  You don’t want to spend inordinate time creating experiments that might fail while exploring your options.</p>
<p>To that end, LiveView will get you up and running as quickly as possible while allowing you to experiment to find what works for your business model.</p>
<p>Later, if you have a successful site that needs to scale, you might consider migrating to an SPA.  But to give your ideas the best chance they have of finding footing in a marketplace, I don’t see how you could do better than to start with LiveView.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191248" data-batch-url="/posts/batch_likers">
                        12
                      </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/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-191248" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191248"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="191250" data-post-id="191250">
  <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 exactly what propelled Rails, and I do believe this is what will propel LiveView.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191250" 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/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-191250" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191250"
                     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="191299" data-post-id="191299">
  <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>Interesting thread <a class="mention" href="/u/marciol" rel="nofollow">@marciol</a> and some great replies too!</p>
<p>I am currently evaluating rebuilding Devtalk in Phoenix (including the forum) and the thought of using LiveView is very appealing - who wants the added complexity of a SPA, right? Your comment here got me a little worried though:</p>
<aside class="quote no-group" data-username="marciol" data-post="1" 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/marciol/48/4223_2.png" class="avatar"> marciol:</div>
<blockquote>
<p>Take for instance an app that I use everyday, Kanbanize. It is built around some server side rendering tech and it is awesome, but I know that some will tell that the UX is subpar, the same can be applied to Basecamp and Hey.</p>
</blockquote>
</aside>
<p>I tracked down what seems to be the source of such remarks (posted in a spin-off thread on DT <a href="https://forum.devtalk.com/t/are-spas-dying-or-becoming-more-popular-beginning-to-shine/2913" rel="nofollow">here</a>) since I was curious why people were being critical in the way that you mentioned. And I don’t necessarily think it’s because of the tech - rather more design choices made in those apps which is leading to people feeling this way.</p>
<p>For instance in HEY they have inconsistant layouts which make things feel a little jarring (such as when going from the email listing page to viewing an email - the header changes). Tbh, I don’t know whether they had a tight deadline (or just forgot that those with a trial account sees those changes more starkly) but it doesn’t feel as polished as what I would normally expect from DHH, so maybe it will evolve over time?</p>
<p>Either way I just wanted to say I’m not convinced it’s because of the tech, so I wouldn’t let those comments put you off - maybe build a prototype and see how you can make it <em>feel</em>? If you’re not a frontend dev, maybe use something like <a href="https://tailwindcss.com" rel="nofollow">Tailwind</a> too?</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AstonJ" data-post="21" 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/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>I am currently evaluating rebuilding Devtalk in Phoenix (including the forum)</p>
</blockquote>
</aside>
<p>Builtwith says Devtalk is <a href="https://builtwith.com/?https%3a%2f%2fdevtalk.com%2f" rel="noopener nofollow ugc">built with Rails</a>. Was there a reason Phoenix wasn’t used initially? Not necessarily LV but just Elixir / Phoenix in general.</p>
<p>Could have been a cool opportunity to build a real world app with Phoenix and even open source it. Sort of like what <a href="https://dev.to" rel="noopener nofollow ugc">https://dev.to</a> did (another similar site built with Rails).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="191356" 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/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-191356" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="191356"
                     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 #21"></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=3">Load more posts</a>
</div></template></turbo-stream>