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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the exhaustive answer!</p>
<p><code>:if</code> and <code>:for</code> definitely made it much nicer to build. Event handlers too. Yet to try some of the patterns.</p>
<p>Did find forms a bit easier to build in Surface than pure LiveView. Mainly because I haven’t fully wrapped my head around schemaless changesets.</p>
<p>I will join the channel and learn from what/how others are building.</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi, I started migrating to surface last weekend. I haven’t migrated everything yet but it’s no problem including LV components in surface components. It was a little rocky at first figuring out how to do a few things like dynamic attributes and attributes with no value but there are several closed issues on the GitHub where people have asked the questions before and people are most helpful in the slack. I kept notes on what confused me and how to resolve it.</p>
<p>I much prefer it. Having the HTML parsed catches some bugs which were time consuming to find (which LV is getting soon too), I prefer typing <code>{}</code> to <code>&lt;%= %&gt;</code>, and the code feels tidier, descriptive and more structured with props, data, slots and surface syntax.</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/heart_eyes.png?v=15" title=":heart_eyes:" class="emoji only-emoji" alt=":heart_eyes:" 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="218390" 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/surface-vs-liveview/40655/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-218390" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="218390"
                     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="218565" data-post-id="218565">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I would love to se some projects which used Surface. At the point where I tried to use it I found it problematic that  I was having trouble adding it to <code>.leex</code> files.</p>
<p>Seeing <a class="mention" href="/u/cmo" rel="nofollow">@cmo</a> answer, I would be interested to see the proper syntax!</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As in, using your Surface components in <code>.leex</code> files?  If you’re just using Surface, you change your <code>.html.leex</code> to <code>.sface</code>, otherwise the docs talk about using it in Phoenix templates <a href="https://surface-ui.org/usage_with_phoenix_templates" rel="noopener nofollow ugc">here</a> but I have not gone down that path.</p>
<p>If you want to see examples, check out:<br>
<a href="https://github.com/puemos/radiopush" rel="noopener nofollow ugc">puemos/radiopush: Create communities and share songs with Spotify users (github.com)</a> (old syntax)<br>
<a href="https://github.com/code-shoily/covid19" rel="noopener nofollow ugc">code-shoily/covid19: A Phoenix app to display Novel Coronavirus (COVID-19) (github.com)</a><br>
<a href="https://github.com/surface-ui/surface_site" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/surface-ui/surface_site</a><br>
<a href="https://github.com/surface-ui/surface_bulma" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/surface-ui/surface_bulma</a><br>
<a href="https://github.com/surface-ui/surface_bootstrap" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/surface-ui/surface_bootstrap</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="218626" 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/surface-vs-liveview/40655/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-218626" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="218626"
                     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="228219" data-post-id="228219">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/msaraiva" rel="nofollow">@msaraiva</a> <a class="mention" href="/u/derek-zhou" rel="nofollow">@derek-zhou</a></p>
<p>Maybe I’ve misread Surface entirely and in that case I apologize from the bottom of my heart <img src="https://forum.elixirforum.com/images/emoji/apple/bowing_man.png?v=15" title=":bowing_man:" class="emoji" alt=":bowing_man:" loading="lazy" width="20" height="20"></p>
<p>otherwise I’m wondering whether you would have 1-2 best practices you’d recommend regarding apps using something like</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/c/6/c6ef4c750e075494fdf8e9e1ed365507537e486d.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/c6ef4c750e075494fdf8e9e1ed365507537e486d" title="Skærmbillede 2021-10-08 kl. 16.54.14" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/c/6/c6ef4c750e075494fdf8e9e1ed365507537e486d.jpeg" alt="Skærmbillede 2021-10-08 kl. 16.54.14" data-base62-sha1="snRew8gVxc4k1lhdXXBBb9tpVql" width="690" height="370" data-dominant-color="D3E3E8"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Skærmbillede 2021-10-08 kl. 16.54.14</span><span class="informations">1200×645 38.7 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>Issues in particular:</p>
<ol>
<li>LAYOUT I’m making great strides into “componentizing” Adam’s wonderful design - and using Surface certainly adds to the fun <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" loading="lazy" width="20" height="20"> (my elixir-fu hardly affords offering the result in a public repo like surface-tailwind, but I’ll let you be the judges of that shortly) but I’m very much questioning the use of a single ‘root’ element like yours in <code>mail_liv.ex</code> with 30-40 ‘if some action’ top-level components, and the live-controller-view-what-you-call-them would be humongous</li>
</ol>
<pre data-code-wrap="elixir"><code class="lang-elixir">def handle_params(_params, _url, %Socket{assigns: %{live_action: :set_password}} = socket) do
    user = System.get_env("USER")

    {
      :noreply,
      socket
      |&gt; clear_flash()
      |&gt; assign(
        info: "Set password of #{user}",
        page_title: "Set password of #{user}",
        password_hash: nil,
        saved_password: "",
        password_prompt: "Pick a password: ",
        buttons: []
      )
    }
  end
</code></pre>
<ol start="2">
<li>LINKS I’ve devoured your LIV repo, <a class="mention" href="/u/derek-zhou" rel="nofollow">@derek-zhou</a> and that seems to lean heavy on a <em>kind of</em> SPA concept but I’ve had a hard time finding the “links” where the user will LiveRedirect sort-of <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_frowning_face.png?v=15" title=":slightly_frowning_face:" class="emoji" alt=":slightly_frowning_face:" loading="lazy" width="20" height="20"></li>
</ol> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="wdiechmann" data-post="16" data-topic="40655">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/wdiechmann/48/5725_2.png" class="avatar"> wdiechmann:</div>
<blockquote>
<p>LINKS I’ve devoured your LIV repo, <a class="mention" href="/u/derek-zhou" rel="nofollow">@derek-zhou</a> and that seems to lean heavy on a <em>kind of</em> SPA concept but I’ve had a hard time finding the “links” where the user will LiveRedirect sort-of <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_frowning_face.png?v=15" title=":slightly_frowning_face:" class="emoji" alt=":slightly_frowning_face:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>In the Liv repo I do not use <code>live_redirect</code> at all; only <code>live_patch</code>. I only have one liveview for the whole thing. I found this practice conceptually simple. It may or may not suit your need though.</p> 
	            </div>

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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t think you are allowed to release a library of the tailwind UI components in some other framework, if that is your intention.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="228256" 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/surface-vs-liveview/40655/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-228256" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="228256"
                     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="228273" data-post-id="228273">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/cmo" rel="nofollow">@cmo</a> I acknowledge the implications but surely Adam will not take offense as long as any “implementation” merely identifies the components, like &lt;Button&gt; – I’m leaving the choice of classes entirely up to the integrator.</p>
<p>In fact I’m not planning on releasing anything as close to TailwindUI as surface_bulma is to Bulma.</p>
<p>But - point taken - and I will for sure contact Adam Wathan making sure that no IP is in any way infringed; I hold his work very dear!</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/+1.png?v=15" title=":+1:" class="emoji only-emoji" alt=":+1:" 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="228273" 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/surface-vs-liveview/40655/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-228273" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="228273"
                     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="228631" data-post-id="228631">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/cmo" rel="nofollow">@cmo</a> you kind-a saved my ass on this one <img src="https://forum.elixirforum.com/uploads/default/original/2X/5/5a7e1ec3c41dfbbc6f4f6e906263c01a37853ea8.gif?v=15" title=":icon_surprised:" class="emoji emoji-custom" alt=":icon_surprised:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/+1.png?v=15" title=":+1:" class="emoji" alt=":+1:" loading="lazy" width="20" height="20"></p>
<p>The jury is in on the componentization of Tailwind, and the verdict is <em>crystal</em></p>
<blockquote>
<p>Thanks for reaching out. Unfortunately, packaging different Tailwind UI components like this, is somewhat creating a “re-distribution channel” for Tailwind UI.</p>
</blockquote>
<blockquote>
<p>We don’t have any sort of API for licence verification, and quite honestly don’t really want to at this point, so we can keep things simple in terms of how Tailwind UI is being distributed.</p>
</blockquote>
<blockquote>
<p>There is absolutely no problem in you creating your own little system to build apps with Tailwind UI within your licence rights, but this is likely not something you should be making public for other users to use.</p>
</blockquote>
<blockquote>
<p>Sorry about the potentially disappointing response, and thank you for your understanding!</p>
</blockquote>
<p>On hindsight I reckon that I should have spent more time describing what “part” of Tailwind I am trying to componentize - but I guess by now it doesn’t matter; like my father used to say: No means no</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="228631" 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/surface-vs-liveview/40655/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-228631" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="228631"
                     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="228637" data-post-id="228637">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think you can take the following approach:</p>
<ul>
<li>let your users install TailwindUI via npm</li>
<li>Your lib can peek into the <code>assets/node_modules</code> on the files installed by TailwindUI, compile it into a elixir module</li>
<li>Your user can now use the auto-generated module from Surface</li>
</ul>
<p>If you are not redistributing, this is just a derivative library, only in a different language</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="228637" 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/surface-vs-liveview/40655/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-228637" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="228637"
                     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/40655/load_more?page=3">Load more posts (8 remaining)</a>
</div></template></turbo-stream>