Elm Radio

Elm Radio

By Dillon Kearns, Jeroen EngelsTechnology
Download on the App Store

Elm Radio episodes

  • 026: Funding Open Source with Evan Czaplicki
    • #PLTalk programming language panels
    • #PLTalk panel discussion on funding
    • Elm compiler roadmap document
    • elm-language-server
    • elm-format's abstract syntax tree output is in the brainstorming phase
    • elm-typescript-interop (the old approach)
    • elm-ts-interop Elm Radio episode
    1 hr 5 min
  • 025: elm-ts-interop
    • elm-ts-interop
    • Now-deprecated original library - elm-typescript-interop
    • The Importance of Ports - Elm Conf talk by Murphy Randle
    • Evan's Vision for Data Interchange document recommends against implicit serialization. The deprecated elm-typescript-interop relied on Elm's automatic JSON serialization flags/ports. elm-ts-interop passes Json.Decode.Value's which is what the guide recommends.
    • Blog post about TypeScript's Blind Spots
    • TypeScript discriminating unions are analagous to Elm custom types
    • Types Without Borders Elm Conf talk
    • elm-ts-json Elm pacakge
    • Elm ts interop npm package
    What's the source of truth?
    • Nexus - code-first GraphQL server
    • graphql-js - schema-first GraphQL
    • Hasura and PostGraphile - Postgres schema is the source of truth
    • Elm Codecs episode
    • elm-ts-json Encode docs
    Getting Started
    • Get your discount code, and learn more about the Pro version, including the scaffolding tool and Pro CLI at elm-ts-interop.com.

    Two articles about the redesign of elm-ts-interop (originally published in Bekk's Functional Christmas posts)

    • Combinators - Inverting Top-Down Transforms
    • Types Without Borders Isn't Enough
    1 hr 15 min
  • 024: elm-program-test
    • Aaron VonderHaar (github) (twitter)
    • elm-format episode
    • elm-program-test
    • elm-test
    • elm-test episode
    • BDD As It's Meant To Be Done video by Matt Wynne
    • BDD (Behavior-Driven Development)
    • Gherkin syntax
    • Outside in vs. inside out testing
    • ensure vs. expect functions
    • The Effect Pattern
    • Http simulation example from examples folder
    • An elm-program-test example using a generalized Effect type
    • elm-program-test GitHub issues for contributing
    • The Official elm-program-test Guidebook
    • The elm-test HTML querying API
    • #testing channel in Elm Slack
    • Writing Testable Elm keynote by Tessa Kelly
    1 hr 12 min
  • 023: elm-format
    • elm-format
    • prettier
    • gofmt, the built-in Go formatting tool
    • Some discussion of IntelliJ trailing whitespace issues
    • elm-format editor integrations table
    • elm-tooling
    • elm-tooling Elm Radio episode
    • Jeroen's elm-format tips tweet
    • NoExposingEverything rule
    • Discussion about single-line conditionals
    • The original Elm style guide
    • Join lines (J in vim, also available with intellij keybindings)
    1 hr 12 min
  • 022: elm-tooling with Simon Lydell
    • Simon Lydell (twitter) (github)
    • elm-tooling-cli
    • elm-json
    • Install elm-tooling into your npm dev dependencies
    • npx
    • elm-publish-action
    • NPM's package.json scripts section
    • NPM postinstall scripts
    • Richard's recommendation to use npm config set ignore-scripts true, which can cause issues because it also skips the postinstall from your package.json
    • elm-tooling-cli docs website
    Elm tooling in ci
    • GitHub Actions
    • Simon's example GitHub Actions workflow with elm-tooling
    • Separate steps for Elm tooling install and npm install to optimize caching
    • npm run --silent (or -s) to reduce noise (more ways to do it in this StackOverflow answer)
    • npm test and npm start to run start and test from your package.json scripts
    • elm-tooling quick start page
    1 hr 6 min
  • 021: elm-review Tips
    • The npx command runs NPM binaries from your shell

    Some tricks to easily try elm-review with no setup:

    npx elm-review --template jfmengels/elm-review-unused/example

    Init with a given template:

    npx elm-review init --template jfmengels/elm-review-unused/example
    Incremental adoption
    • Don't enable lots with errors, better to have few with no errors
    • Enable in CI
    • ignoreErrorsForFiles
    • ignoreErrorsForDirectories
    • Try the --fix, --fix-all, and --watch flags (see how to run elm-review)
    Useful packages and workflow
    • Review rule for Documentation.ReadmeLinksPointToCurrentVersion

    • elm-verify-examples

    • Safe unsafe operations in Elm blog post

    • elm-spa Elm Radio episode

    • jfmengels/elm-review-debug

    • jfmengels/elm-review-common

    • sparksp/elm-review-ports

    • sparksp/elm-review-imports

    • Getting started with elm-review episode

    • Incremental Steps episode

    51 min
  • 020: Holiday Special!
    Our special guests
    • Tessa Kelly (twitter) (github)
    • Mario Rogic (twitter) (github)
    • Matthew Griffith (twitter) (github)
    Links
    • Lamdera

    • Richard Feldman's talk Scaling Elm Apps

    • Life of a File Elm Radio episode

    1 hr 15 min
  • 019: Scaling Elm Apps
    • Richard Feldman's talk Scaling Elm Apps
    • Life of a File Elm Radio episode
    • Web Components (can be used to encapsulate state heavy view components)
    • How Elm Code Tends Towards Simplicity
    • GOOS book
    • elm-spa framework
    50 min
  • 018: Lighthouse Scores
    Performance metrics
    • First Contentful Paint
    • Time to Interactive
    • Cumulative Layout Shift
    Best practices
    • Lighthouse SEO Audits
    • Lighthouse Best Practices Audits
    Performance best practices
    • CDN
    • Netlify
    Image Optimization
    • Cloudinary
    • loading=lazy
    • SVG
    Icons
    • Apple touch and other icons to add to
    • Some resources on icons
    • What the apple touch icons mean
    • Google web.dev resource on apple touch icons
    • manifest.json
    PWAs
    • Progressive Web Apps
    • Must be HTTPS
    • About service workers
    • Stale while revalidate service worker cache policy
    • Workbox
    • elm-starter
    Performance
    • Elm optimization instructions for using Terser, the --opimize flag, and elm-optimize-level-2

    • Dev tools performance tab

    • Ju Liu's article, Performant Elm, on analyze Elm performance using Chrome Dev Tools

    • HTTP2 Push is dead

    • Using preload tags

    • Here's an in-depth conference talk on different script tag techniques. Ishows the differences between different ways to load script tags, including using async, defer, and in HTML vs.

    SEO
    • meta viewport tag
    • Axe accessibility tools
    • Canonical URLs
    • OpenGraph tags
    • Lighthouse accessibility audits
    Resources
    • Lighthouse netlify plugin
    • web.dev learn section
    1 hr 5 min
  • 017: Codecs
    • miniBill/elm-codec - JSON codec library
    • MartinSStewart/elm-codec-bytes
    Backwards compatibility
    • elm-codec's FAQ section on backwards compatability

    • Mario Rogic's talk on Elm Evergreen

    • Mario Rogic's talk on Lamdera

    Keeping data in sync
    • Elm Radio episode on elm-graphql
    • Two Generals Problem

    Elm codec API - string, Bool, object

    • MartinSStewart/elm-serialize/latest/, encodes in a format that is optimized for compactness
    55 min

About Elm Radio

From the publisher's feed

Tune in to the tools and techniques in the Elm ecosystem.