92: Derrick Reimer - Building an SPA with Elm, Phoenix and GraphQL

Full Stack Radio

Episode | Podcast

Date: Tue, 03 Jul 2018 17:03:00 +0000

<p>Topics include:</p><ul> <li>Why Derrick chose to build Level as an SPA</li> <li>Choosing Elm over React or Vue</li> <li>How Elm is sort of like a language and framework combined</li> <li>Moving to Phoenix from Rails</li> <li>Why getting abstractions right feels easier in a functional language</li> <li>How "contexts" help you organize your Phoenix code</li> <li>The benefits of GraphQL over REST</li> <li>What it looks like to implement GraphQL on the server</li> <li>Avoiding n+1 queries with GraphQL</li> </ul><p>Sponsors:</p><ul> <li> <a href="https://rollbar.com/fullstackradio">Rollbar</a>, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days</li> <li> <a href="https://cloudinary.com/users/register/free?utm_source=fullstackradio&amp;utm_medium=Sponsored_Podcast&amp;utm_content=fullstackradio_PodCast">Cloudinary</a>, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free</li> </ul><p>Links:</p><ul> <li><a href="https://level.app/">Level</a></li> <li><a href="https://www.youtube.com/channel/UC_S4Y8fdGKdsEWn4GcosEKw">Level live-coding screencasts on YouTube</a></li> <li> <a href="http://elm-lang.org/">Elm</a>, the functional programming language Derrick is using on the frontend</li> <li> <a href="https://guide.elm-lang.org/">An Introduction to Elm</a>, the official tutorial</li> <li><a href="https://guide.elm-lang.org/architecture/">The Elm Architecture</a></li> <li> <a href="https://elixir-lang.org/">Elixir</a>, the functional programming language Derrick is using on the backend</li> <li> <a href="http://phoenixframework.org/">Phoenix</a>, the Elixir framework</li> <li> <a href="https://hexdocs.pm/phoenix/contexts.html">Contexts</a> in Phoenix</li> <li><a href="https://graphql.org/">GraphQL</a></li> <li> <a href="https://github.com/absinthe-graphql/absinthe">Absinthe</a>, GraphQL implementation for Elixir</li> </ul>