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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Morzaram" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Morzaram/120/24522_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Morzaram
                    <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>This is what I’m wanting to make!</p>
<p>Perhaps we can do an open-source book or something with these recipes.</p>
<p>Although I’m not sure how well this table of contents translates, so maybe we can make a group effort to make a recipe list table of contents like the one above and then flesh it out.</p>
<p><a class="mention" href="/u/astonj" rel="nofollow">@AstonJ</a>, any ideas on how you’d modify this table of contents to match Elixir?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270505" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-270505" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270505"
                     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="270506" data-post-id="270506">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Morzaram" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Morzaram/120/24522_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Morzaram
                    <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’ve started a repo here: <a href="https://github.com/Morzaram/elixir-best-practices" class="inline-onebox" rel="noopener nofollow ugc">GitHub - Morzaram/elixir-best-practices: A repo that aims to provide best practices for any task in elixir you're aiming to accomplish · GitHub</a></p>
<p>I tried to see what ChatGPT could do, so if you see any inaccuracies (I know there are), I haven’t fixed them, just added some stuff and will clean and organize later. Just wanted to get repo going <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270506" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-270506" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270506"
                     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="270516" data-post-id="270516">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote" data-post="1" data-topic="51838">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/elixirconf/48/25625_2.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/elixirconf-2022-jason-axelson-quick-iteration-in-elixir-tips-from-6-yrs-of-elixir-development/51838" rel="nofollow">ElixirConf 2022 - Jason Axelson - Quick Iteration in Elixir - Tips from 6 Yrs of Elixir Development</a> <a class="badge-category__wrapper " href="/c/learning-resources/talks/58" rel="nofollow"><span data-category-id="58" style="--category-badge-color: #3AB54A; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #3AB54A;" data-parent-category-id="8" data-drop-close="true" class="badge-category --style-square --has-parent" title="Elixir Talks Section"><span class="badge-category__name">Talks</span></span></a>
    </div>
  </div>
  <blockquote>
    <a href="https://www.youtube.com/watch?v=BotVs6TXR-c" class="onebox" target="_blank" rel="noopener nofollow ugc">https://www.youtube.com/watch?v=BotVs6TXR-c</a> 
ElixirConf: ElixirConf 2022 - Jason Axelson - Quick Iteration in Elixir - Tips from 6 Yrs of Elixir Development 
Comments welcome! View the <a class="hashtag-cooked" href="/tag/elixirconf/147" data-type="tag" data-slug="elixirconf" data-id="147" 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>elixirconf</a> tag for more ElixirConf talks!
  </blockquote>
</aside>

<p>            <img class="youtube-thumbnail onebox" style="display: none;" src="https://img.youtube.com/vi/BotVs6TXR-c/maxresdefault.jpg" width="690" height="388">
            <iframe src="https://www.youtube.com/embed/BotVs6TXR-c?feature=oembed&amp;wmode=opaque" width="480" height="360" frameborder="0" allowfullscreen="" class="youtube-onebox" seamless="seamless" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation"></iframe>
</p>
<p>            <img class="youtube-thumbnail onebox" style="display: none;" src="https://img.youtube.com/vi/bodV9Tk_kpQ/maxresdefault.jpg" width="690" height="388">
            <iframe src="https://www.youtube.com/embed/bodV9Tk_kpQ?feature=oembed&amp;wmode=opaque" width="480" height="360" frameborder="0" allowfullscreen="" class="youtube-onebox" seamless="seamless" sandbox="allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation"></iframe>
</p>
<ol>
<li>Bot detection</li>
<li>Secure Headers</li>
<li>Authentication &amp; Authorization best practices</li>
<li>Monitoring, flame graphs</li>
<li>Feature flags</li>
<li>Realtime perf stuffs</li>
<li>Logging with Loki</li>
<li>Metrics with Prometheus and Grafana</li>
<li>Image storage with MinIO and fetch with imgproxy and <a class="mention" href="/u/kip" rel="nofollow">@kip</a>’s image library for advance stuff.</li>
<li>Video upload with tusd for resumable upload and ffmpeg compression and then serving appropriately.</li>
<li>User invitation, locking, tracking how many devices they have joined from.</li>
<li>Ways to tackle notifications and settings changes, like cross browser / tabs or cross devices.</li>
<li>ASDF for version management and local development.</li>
<li>Hostsfile modifications to run site in HTTPs mode in local as well. (<a href="https://derpycoder.site" rel="noopener nofollow ugc">https://derpycoder.site</a> instead of localhost:4000)</li>
<li>Caddy as a simple server for subdomains. (s3.derpycoder.site, img.derpycoder.site)</li>
<li>Mkcert for cert gen in local.</li>
<li>Meilisearch/ Typesense with LiveView for proper text search and command pallete</li>
<li>Postgres compatible Cockroach db for scalable setup.</li>
<li>Clustering, rolling / canary deployment.</li>
<li>Cron job</li>
<li>Sending email formatted with MJML</li>
<li>Draining node before shutting down.</li>
<li>Environment variables from .env files</li>
<li>Creating first super user using environment variable</li>
<li>Netdata</li>
<li>Pgweb</li>
<li>Varnish cache for static assets (vdo.derpycoder.site)</li>
<li>Starting livebook directly connected to project</li>
<li>Business intelligence using LiveBook.</li>
<li>Credo, Sobelow</li>
<li>Wire guard using <a href="https://github.com/tonarino/innernet" rel="noopener nofollow ugc">Innernet</a></li>
</ol>
<p>Etc.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270516" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-270516" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270516"
                     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="270689" data-post-id="270689">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey guys,</p>
<p>This is all the progress I have made:</p>
<p>I made my repo public, I have to redo it anyways for Phoenix 1.7. Also after learning 7 plus books, I might have different perspectives on doing things.</p>
<p><a href="https://github.com/derpycoder/derpycoder" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/derpycoder/derpycoder</a></p>
<hr>
<p>Readme is a mess, but a treasure trove for me.</p>
<p>Checkout the taskfile and see if you can figure out the setup.</p>
<p>Basically have homebrew and asdf, installations and stuff will be a breeze.</p>
<p>Run the hostfile related command to register domains.</p>
<p>Run Cockroach db, Minio, caddy and then start the server.</p>
<p>Start any other services and visit their respective subdomains based on caddyfile.</p>
<hr>
<p>Please don’t create any PRs or issues as I am a complete noob.</p>
<hr>
<p>My way of doing thing s maybe flawed, but I am overly cautious and want to avoid tech debt as much as possible and make all the right choices up front.</p>
<hr>
<p>P.S. See seeds.exs and .env files for username and passwords.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270689" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-270689" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270689"
                     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="270788" data-post-id="270788">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Also generate certs with associated generation commands before starting, as most of the services run in HTTPs mode, even in local.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270788" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-270788" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270788"
                     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="270806" data-post-id="270806">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If possible I want to replace Taskfile with mix commands.</p>
<p>But I am not clear on how to make it slick like Taskfile.</p>
<p>Also how do I create a :digraph, so when I type<br>
<em>mix start</em> or something, all of the underlying or necessary services start up, in a topological sorted order!</p>
<hr>
<p>P.S. I haven’t even reached deployment related optimisations yet.</p>
<p>P.P.S. I hate docker, I would prefer BEAM to be the OS running and managing the whole app.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="270806" 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/building-a-best-practices-site-for-phoenix-liveview-elixir-etc/52156/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-270806" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="270806"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>