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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                    <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 class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ll try to leave most of the talking to other Ash users who see your message <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">  With that said, there are tons of escape hatches at various levels, from adding functional hooks to changes, to making actions <code>manual</code> and taking over their execution. One thing we’re actively working on(because it can be problematic) is making errors more understandable. More often than I would like, errors are lacking important context that would make debugging much easier. I don’t think this is a problem with the pattern, just something that requires some elbow grease on our end <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"> See: <a href="https://github.com/ash-project/ash/pull/440" class="inline-onebox" rel="noopener nofollow ugc">improvement: add error context to error creation / normalisation by rellen · Pull Request #440 · ash-project/ash · GitHub</a></p>
<p>In terms of performance, Ash generally leans into other tools to provide performance/stability guarantees, i.e AshPostgres ultimately runs your queries with Ecto. AshJsonApi is built with Plug, and AshGraphql uses Absinthe and Dataloader. I’d be lying if I said there was no additional overhead on top of those tools when using Ash, but similar to the error situation above, that isn’t <em>intrinsic</em> to what we’re doing, just optimizations waiting to be made <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>
<p>Check out AshHq if you haven’t already, its all implemented with Ash, from an extension that runs full text search with postgres, to the newly added (yesterday) <code>AshBlog</code> data layer that stores files in the priv directory. Lots of goodies in that codebase.</p>
<p>Site: <a href="https://ash-hq.org" rel="noopener nofollow ugc">https://ash-hq.org</a></p>
<p>Source: <a href="https://github.com/ash-project/ash_hq" class="inline-onebox" rel="noopener nofollow ugc">GitHub - ash-project/ash_hq: The Ash Framework homepage and documentation site. · GitHub</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="266949" data-batch-url="/posts/batch_likers">
                        6
                      </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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-266949" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="266949"
                     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="267049" data-post-id="267049">
  <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>Nice to see the Elixir landscape expanding with frameworks like Ash - and it’s great to see it can be used alongside Phoenix <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<aside class="quote group-Ash-Core-Team quote-modified" data-username="zachdaniel" data-post="1" data-topic="51119">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/48/31980_2.png" class="avatar"> zachdaniel:</div>
<blockquote>
<p>Office hours/Q&amp;A release livestream: <a href="https://www.youtube.com/watch?v=BchANMO1f8s" rel="nofollow">Ash Framework 2.0 Office Hours - YouTube </a></p>
</blockquote>
</aside>
<p>Great that you’re not averse to YouTubing, I was going to suggest making a tutorial video, glad you’re on it:</p>
<aside class="quote group-Ash-Core-Team" data-username="zachdaniel" data-post="7" data-topic="51119">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/48/31980_2.png" class="avatar"> zachdaniel:</div>
<blockquote>
<p>soon I’ll be making a “make a twitter clone” style video</p>
</blockquote>
</aside>
<p>I find videos are really good for introducing people to tech like frameworks <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></p>
<p>Also great to see Alembic taking you on to work on Ash! For those who are not aware Alembic have been using Elixir for quite some time and they are very active in the Elixir space in Australia - they help organise Elixir Camp and Elixir Girls <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
<p><em>Good luck with Ash, Zach - please keep us posted!</em></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="267049" 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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-267049" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="267049"
                     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="267052" data-post-id="267052">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>What a terrific achievement man, this looks incredibly well made! Terrific work!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="267052" 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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-267052" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="267052"
                     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="267061" data-post-id="267061">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote group-Ash-Core-Team" data-username="zachdaniel" data-post="1" data-topic="51119">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/48/31980_2.png" class="avatar"> zachdaniel:</div>
<blockquote>
<p>Phoenix is absolutely the recommended way to build web interfaces on top of your Ash application</p>
</blockquote>
</aside>
<p>Therefore, not clear to me why should I choose Ash over Phoenix <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20"><br>
Otherwise, congrats for the achievement! The website looks promising.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="267061" 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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-267061" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="267061"
                     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="267066" data-post-id="267066">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve just spent most of the morning looking at Ash.</p>
<p>It looks amazing.. and I’m pretty interested in that auth resource you were mentioning on YouTube now =)</p>
<p><code>Therefore, not clear to me why should I choose Ash over Phoenix</code></p>
<p>It’s not Ash <em>or</em> Phoenix, but rather Ash handles defining things like permissions/filters/datalayers around resources. There’s no concept of web-related things particularly, although there are exertions you can use to plug into things like Phoenix.</p>
<p>Phoenix does all the things Phoenix will still do.. but then Ash comes along to give all these cool ways of defining flows, policies, attributes, etc. that you can call from anywhere - like a Phoenix controller or a Phoenix Liveview.</p>
<p>So it seems the ash framework provides a consistent way to define resources, change them, and read them at a separate layer from web.</p>
<p>It may replace/augment/overlap the idea of ‘contexts’ in Phoenix… but that would be it I think.</p>
<p>I’ve wanted an opinionated way of doing those filters/policies/etc. for a while so I don’t make spaghetti inadvertently =)</p>
<p>Looks awesome.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="267066" data-batch-url="/posts/batch_likers">
                        6
                      </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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-267066" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="267066"
                     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="276389" data-post-id="276389">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am currently watching <a href="https://www.youtube.com/watch?v=pwxShYmJgkk" rel="noopener nofollow ugc">https://www.youtube.com/watch?v=pwxShYmJgkk</a> und Ash reminds me of Hobo for Ruby/Rails - does anyone remember that? I think Ash could be the next game changer for Phoenix after LiveView and Surface.</p>
<p>Are there any tutorials available where you create a extremely minimal web application? I think I learn best when following somebody incremently implementing feature after feature. Edit: Found <a href="https://ash-hq.org/docs/guides/ash/latest/tutorials/get-started" class="inline-onebox" rel="noopener nofollow ugc">Get Started — ash v3.29.3</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="276389" 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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-276389" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="276389"
                     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="319009" data-post-id="319009">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The Ash interactive Livebook tutorial a fantastic example of what a great, hands-on tutorial experience can aspire to. I am very impressed on several levels!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="319009" 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/ash-framework-a-declarative-resource-oriented-application-development-framework-for-elixir/51119/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-319009" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="319009"
                     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>