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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi Mario,</p>
<p>The intention is that <code>Xgit.Repository.OnDisk</code> is compatible with command-line git. The approach I take when building disk-related components is to run the equivalent operations in command-line git and Xgit and folder-diff the two. For example:</p>
<p><a href="https://github.com/elixir-git/xgit/blob/d12191843f4b4e6c3bae16b13915e344eda1120e/test/xgit/repository/on_disk/put_loose_object_test.exs#L16" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/elixir-git/xgit/blob/d12191843f4b4e6c3bae16b13915e344eda1120e/test/xgit/repository/on_disk/put_loose_object_test.exs#L16</a></p>
<p>That said, I’ll admit that at this early stage of the project I’m not aiming for 100% coverage of all variations of every piece of the on-disk format. As an example, I’m working on writing and parsing the <code>.git/index</code> file. For the moment, I only support version 2 because that’s what’s generated every time I do anything locally.</p>
<p>My primary goal for the on-disk version of things is to prove that I’ve got the abstractions right and that I <em>can</em> implement the core data model of git correctly.</p>
<p>That said, to anybody who wants to fill in some of those edge cases (i.e. versions 3 and 4 of index file format): I will happily review a PR. (Parse index file is mostly done; writing index files is my work-in-progress this week. I expect to finish that feature by the weekend and have an 0.1.6 release out then.)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="140891" 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/gitgud-github-clone-entirely-written-in-elixir/12920/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-140891" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="140891"
                     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>
    <div class="postbit" id="144215" data-post-id="144215">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This seems pretty interesting. I might have a decent use case for this. The only question I have is if you can use git lib to store data in any back end, what back ends are acutely possible and how can we improve the ones we have currently with GItHub or Gitlab.</p>
<p>A super slick data store might really improve things, something spanner or similar.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="144215" 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/gitgud-github-clone-entirely-written-in-elixir/12920/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-144215" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="144215"
                     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 #42"></div>
  </section>
</div>
    <div class="postbit" id="144409" data-post-id="144409">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MarioFlach" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MarioFlach/120/24564_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MarioFlach
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="m3rl1n" data-post="43" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/m/e0b2c6/48.png" class="avatar"> m3rl1n:</div>
<blockquote>
<p>The only question I have is if you can use git lib to store data in any back end, what back ends are acutely possible and how can we improve the ones we have currently with GItHub or Gitlab.</p>
</blockquote>
</aside>
<p><code>libgit2</code> let you implement your custom backend for Git. I’ve written an experimental postgres backend built with <code>libpq</code>, check <a href="https://github.com/almightycouch/gitgud/blob/master/apps/gitrekt/c_src/postgres_backend.c" rel="noopener nofollow ugc">postgres_backend.c</a> for implementation details.</p>
<p>My current plan is to provide</p>
<ol>
<li>a filesystem (default backend) storage coupled with Erlang/Elixir OTP goodness for distributing Git repositories on a multiple node setup. The <code>GitRekt.GitAgent</code> already support repository access through message-passing (<code>GenServer</code>), the missing part is the “dispatcher” (consistent hash ring) that will be responsible for finding the right node for a given <code>USER/REPO</code>.</li>
<li>a <code>libgit2</code> backend for a distributed key/value store including failover, redundancy, etc.</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="144409" 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/gitgud-github-clone-entirely-written-in-elixir/12920/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-144409" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="144409"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="144411" data-post-id="144411">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MarioFlach" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MarioFlach/120/24564_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MarioFlach
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m also tackling the issue system right now. The UX is built with React and Relay, on the backend it uses GraphQL (<code>Absinthe</code>) and <code>Phoenix.Presence</code>.</p>
<p>All events are handled in real-time through GraphQL subscriptions and <code>Phoenix.Channel</code>.<br>
You’ll receive real-time events when</p>
<ol>
<li>somebody writes a new comment or edit an existing comment</li>
<li>the issue is closed/reopened/renamed</li>
<li>the issue is referenced in a Git commit</li>
<li>somebody is typing a new message (<code>Phoenix.Presence</code>).</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="144411" 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/gitgud-github-clone-entirely-written-in-elixir/12920/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-144411" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="144411"
                     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 #44"></div>
  </section>
</div>
    <div class="postbit" id="144413" data-post-id="144413">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MarioFlach" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MarioFlach/120/24564_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MarioFlach
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Once version <code>0.2.9</code> is released (I need to polish a few things), I will deploy the new version to <a href="https://git.limo" rel="noopener nofollow ugc">https://git.limo</a>. I will allow pushing repositories but set a limit in order to prevent pushing very large repositories.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="144413" 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/gitgud-github-clone-entirely-written-in-elixir/12920/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-144413" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="144413"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="151774" data-post-id="151774">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="MarioFlach" data-post="45" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>The UX is built with React and Relay,</p>
</blockquote>
</aside>
<p>No liveview <img src="https://forum.elixirforum.com/images/emoji/apple/astonished.png?v=15" title=":astonished:" class="emoji" alt=":astonished:" loading="lazy" width="20" height="20"></p>
<p>Congrats for the work done until now <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" 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="151774" 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/gitgud-github-clone-entirely-written-in-elixir/12920/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-151774" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="151774"
                     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 #46"></div>
  </section>
</div>
    <div class="postbit" id="151910" data-post-id="151910">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MarioFlach" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MarioFlach/120/24564_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MarioFlach
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Exadra37" data-post="47" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/exadra37/48/9183_2.png" class="avatar"> Exadra37:</div>
<blockquote>
<p>No liveview <img src="https://forum.elixirforum.com/images/emoji/apple/astonished.png?v=15" title=":astonished:" class="emoji" alt=":astonished:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Nope. I’ve experimented with LiveView a bit. In the end I was not convinced it’s the right tool for the project.</p>
<p>I don’t like that each websocket connection has to refetch data for each request (when socket mounts). Also I use JS to improve client-side UX in most places and don’t like to have the server consume resources for that kind of stuff.</p>
<p>GraphQL provides a lot of features for what I need (batching, subscription, async. etc.) and <code>:absinthe</code> and Relay function pretty much without hassles.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="151910" 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/gitgud-github-clone-entirely-written-in-elixir/12920/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-151910" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="151910"
                     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 #47"></div>
  </section>
</div>
    <div class="postbit" id="151915" data-post-id="151915">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>Nope. I’ve experimented with LiveView a bit. In the end I was not convinced it’s the right tool for the project.</p>
</blockquote>
</aside>
<p>Maybe I am wrong, but what I read and observed from LiveView it sounds that your use case is a good fit for it.</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>I don’t like that each websocket connection has to refetch data for each request (when socket mounts).</p>
</blockquote>
</aside>
<p>But this doesn’t happen in every request. For what I understand just when it looses the internet connection, or its a new session.</p>
<p>How does your JS implementation differs?</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>Also I use JS to improve client-side UX in most places</p>
</blockquote>
</aside>
<p>For what I understand LiveView have hooks to allow you to do that.</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>and don’t like to have the server consume resources for that kind of stuff.</p>
</blockquote>
</aside>
<p>For what I know LiveView doesn’t consume much resources, and it only sends the diffs to the client.</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>GraphQL provides a lot of features for what I need (batching, subscription, async. etc.) and <code>:absinthe</code> and Relay function pretty much without hassles.</p>
</blockquote>
</aside>
<p>It sounds that you are already very familiar with the frontend complexity, thus not buying easily into LiveView, fair-enough <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" 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="151915" 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/gitgud-github-clone-entirely-written-in-elixir/12920/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-151915" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="151915"
                     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 #48"></div>
  </section>
</div>
    <div class="postbit" id="152075" data-post-id="152075">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>I don’t like that each websocket connection has to refetch data for each request (when socket mounts).</p>
</blockquote>
</aside>
<p>Cachex among other patterns fixes that (depending on type of data), but it’s by design because each are different processes and so forth.</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>Also I use JS to improve client-side UX in most places and don’t like to have the server consume resources for that kind of stuff.</p>
</blockquote>
</aside>
<p>The server resources are pretty light, but yeah I agree, I use <code>unpoly.js</code> for most of my things to ‘enhance’ a page to work faster, I highly recommend looking at it, you can even optimize sending requests back to minimize data sent too (or don’t change anything on the server side).</p>
<aside class="quote no-group" data-username="MarioFlach" data-post="48" data-topic="12920">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/marioflach/48/24564_2.png" class="avatar"> MarioFlach:</div>
<blockquote>
<p>GraphQL provides a lot of features for what I need (batching, subscription, async. etc.) and <code>:absinthe</code> and Relay function pretty much without hassles.</p>
</blockquote>
</aside>
<p>Absinthe on the other hand is awesome, but it requires a <em>lot</em> of client-side scripting, just make sure you don’t break text clients like <code>elinks</code> or <code>links2</code> or so.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" 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="152075" 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/gitgud-github-clone-entirely-written-in-elixir/12920/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-152075" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="152075"
                     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 #49"></div>
  </section>
</div>
    <div class="postbit" id="152083" data-post-id="152083">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>A super slick data store (s3 in elixir) would be freaking amazing.  I have a use case for this at work and if I don’t see anything good crop up I might try to implement this.</p>
<p>PS iirc (correct me if I’m wrong) spanner requires highly sychronized atomic clocks so unless you’re Google you don’t really get to use it.  But also the geniuses at Google don’t necessarily have an underlying architecture that respects the theory of relativity in quite the same way that the BEAM does.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="152083" 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/gitgud-github-clone-entirely-written-in-elixir/12920/51">Post #50</a>
	                </div>
	            </div>
              <div id="likers-container-152083" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="152083"
                     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 #50"></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/12920/load_more?page=6">Load more posts (13 remaining)</a>
</div></template></turbo-stream>