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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="IVR" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/IVR/120/21062_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  IVR
                    <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>Thanks for sharing your experience, it’s definitely something to consider before committing to Elm!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199654" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-199654" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199654"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="199684" data-post-id="199684">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As someone who really loves writing apps in Elm, I find Elixir &amp; Phoenix to be my preferred choice of backend. Especially now that it’s possible to integrate Gleam with Elixir to get more type safety on the backend.</p>
<p>If you’re coming at it from the other perspective - that you love Elixir and want to choose a front-end option - you may or may not enjoy Elm. I think the mindset is a bit different between the languages. Elixir is much stronger on all the non-core-language-related parts of developer experience - documentation, frameworks, testing, tooling - and getting productive quickly. Elm’s strengths mainly relate to its type system &amp; compiler, which make it easier to model data, write correct code without so many tests and do huge refactors without much risk. I think Elm also scratches the itch of helping you learn a bit more about the mathematical aspects of programming, if you’re interested in that stuff.</p>
<p>Between the two languages, I guess it depends where you sit on that spectrum as to what you value more - practicality or… I almost want to say, beauty. I quite enjoy using both because it’s good to keep my brain working in different ways!</p>
<p>I have to say, though, that I am a part-time, solo developer (I did write an Elm/Phoenix system that we use at work, but mostly I just do hobby projects for fun), so I can’t say whether Elm + Phoenix is a good choice once you factor in all the additional complexities of working in a team, 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="199684" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-199684" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199684"
                     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 #22"></div>
  </section>
</div>
    <div class="postbit" id="199686" data-post-id="199686">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="IVR" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/IVR/120/21062_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  IVR
                    <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>Hey, thanks for the feedback! I’m actually a hobbyist solo developer myself, so I’m specifically looking for a stack that I could use to work on my personal projects. I primarily value tools that would allow me to iterate quickly but at the same time wouldn’t hold me back if I wanted to increase complexity.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199686" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-199686" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199686"
                     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 #23"></div>
  </section>
</div>
    <div class="postbit" id="199779" data-post-id="199779">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey gangstead! Welcome to the forum <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>
<aside class="quote no-group" data-username="gangstead" data-post="21" data-topic="36647">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gangstead/48/20511_2.png" class="avatar"> gangstead:</div>
<blockquote>
<p>I feel like I’m the only person so far with a negative take so I’m watching this thread closely to see if there’s something I’m missing.</p>
</blockquote>
</aside>
<p>Oh then I probably should not have deleted my five ranting paragraphs <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"><br>
Again, my main take away is: don’t resort to “frontend all the things” without a propper use case!</p>
<aside class="quote no-group" data-username="gangstead" data-post="21" data-topic="36647">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gangstead/48/20511_2.png" class="avatar"> gangstead:</div>
<blockquote>
<p>It works. It’s pretty cool. I wouldn’t recommend it.</p>
</blockquote>
</aside>
<p>This completely sums up my experience with this library <img src="https://forum.elixirforum.com/images/emoji/apple/joy.png?v=15" title=":joy:" class="emoji" alt=":joy:" loading="lazy" width="20" height="20"> although for the one specific problem you mentioned:</p>
<aside class="quote no-group" data-username="gangstead" data-post="21" data-topic="36647">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gangstead/48/20511_2.png" class="avatar"> gangstead:</div>
<blockquote>
<p>elm-graphql package dogmatically turns into some nasty types like <code>Maybe (List (Maybe Foo))</code></p>
</blockquote>
</aside>
<p>You need to make sure on the <strong>backend</strong> that values you don’t want to be <code>Maybe</code> typed are <strong>not <code>nullable</code></strong> in the API schema. Otherwise the generator is completely correct to assume that you could receive a <code>Maybe</code> in your API. Once you typed the schema correctly, the generator will happily produce a <code>List Foo</code> type.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199779" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-199779" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199779"
                     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 #24"></div>
  </section>
</div>
    <div class="postbit" id="199791" data-post-id="199791">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="mmmrrr" data-post="25" data-topic="36647">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mmmrrr/48/12227_2.png" class="avatar"> mmmrrr:</div>
<blockquote>
<p>You need to make sure on the <strong>backend</strong> that values you don’t want to be <code>Maybe</code> typed are <strong>not <code>nullable</code></strong> in the API schema. Otherwise the generator is completely correct to assume that you could receive a <code>Maybe</code> in your API. Once you typed the schema correctly, the generator will happily produce a <code>List Foo</code> type.</p>
</blockquote>
</aside>
<p>For sure. This was in graphql schema generated by absinthe-relay, so not directly accessible by me. The flag to make the list and its contents not nullable is in master for some months, but not released. This is only an annoyance for a consumer like Elm. In regular js the developer can realize that the pagination will always return a list that’s empty or contains non-nulls, but elm makes you handle the <code>[null]</code> case. Sure it’s more “correct” and you can guarantee no runtime error. You prevent some errors that way but in that case it wasn’t going to happen anyways and now your code has a little more confusing clutter.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199791" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-199791" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199791"
                     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 #25"></div>
  </section>
</div>
    <div class="postbit" id="199793" data-post-id="199793">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have been using Elixir and Elm for quite some years now, and I just love the combo.<br>
I know LiveView is the new hotness for many developers and do not begrudge that.<br>
I love the simplicity and the philosophy of Elm. I do not agree that it is limited in interop, as has already been said, ports rock.<br>
I have written several large Elm/Elixir apps, some as an SPA, some with Phoenix doing the routing, and am currently writing a new dashboard for our clients to manage their hotspots with elm-spa, elm-graphql and absinthe. In the past we have used Elm to transition one of my clients system from Rails to Phoenix.<br>
My personal preference, as I am definitely NOT a front end developer, is to use Elm on the front. It gives me the assurance that my code works and all my bases are covered.<br>
My brother, also a long-time developer, developed an offline-ready Elm SPA, that interfaces with indexedDB and he loves it, even though he is using Rails on the backend (for now…).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199793" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-199793" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199793"
                     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 #26"></div>
  </section>
</div>
    <div class="postbit" id="199995" data-post-id="199995">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lukaszsamson" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lukaszsamson/120/7671_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lukaszsamson
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ElixirLS Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In my company we have a small backoffice app running on elm/phoenix combo. While initially great for development, elm turned out to be a bad choice in the long run. Integrating elm with frontend js libraries is difficult on 0.18 and almost not possible on 0.19. Support for new js/dom features is nonexistent. We are stuck on elm v0.18 with no easy migration path - most of the elm libraries we use were never ported. Build tools stopped supporting 0.18 2 years ago so we are stuck on old webpack/node also. The language itself introduced massive breaking changes in 0.19. We are considering a rewrite in react/vue/live_view.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="199995" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-199995" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="199995"
                     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 #27"></div>
  </section>
</div>
    <div class="postbit" id="256436" data-post-id="256436">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am loving this combination so far within a large codebase.</p>
<p>For people who have some rendering on backend in addition to the majority on front end, how do you organize and share css between backend and frontend. That is, do you use elm-css and separate css on backend or actually share by using sass?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="256436" 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/thoughts-and-feeling-about-mixing-elm-with-phoenix/36647/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-256436" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="256436"
                     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>