Frontend First

Frontend First

By Sam Selikoff, Ryan TorontoTechnology
Download on the App Store

Frontend First episodes

  • Lenient libraries, strict applications

    Topics include:

    • 04:01: Welcome to Node Dependency Hell.
    • 14:00: How should the way we declare dependencies change if an addon is an implementation detail of another addon?
    • 21:45: Can Ember CLI address these problems a layer above Yarn/npm?
    • 23:25: Is JavaScript's fractured module ecosystem (CommonJS in node vs. ES6 modules in the frontend) contributing to the problem?
    • 26:21: Someone's app broke when they installed their dependencies due to a Mirage dependency changing. How can we reliably solve this for users?
    • 35:05: Even if the tooling were better, there's a cultural problem where JS library authors don't consider the dependencies they bring in.
    • 39:04: Lessons learned:
      • apps should specify strict dependencies, libraries (including addons) should specify lenient dependencies
      • apps should use lockfiles
      • ember-dependency-lint & yarn resolutions are a good top-level escape hatch
      • addons should use the dependencies key & ember-auto-import for most of their dependencies
      • 41:12: Ember Auto Import attempts some deduplication of dependencies. If you're writing an addon that has a dependency the host app cares a lot about, you can use addPackagesToProject to put the burden on host app.
      • 48:33: Would you build Ember CLI Tailwind the same if you were building it from scratch today?
      • 54:55: Call for input. What are any best practices that we've missed? What did we get wrong?
      • 59:20: Mirage blog using GitHub issues teaser
      • Links:

        • Ember Auto Import
        • Discourse topic on conflicting dependencies
        • Dependency Lint
        • Ember CLI Addon Docs
        • Ember CLI Tailwind
        • 1 hr 3 min
        • Mirage, meet Addon Docs!

          Topics include:

          • 01:17: Mirage's new Addon Docs site
          • 35:55: Ember Bind Helper
          • 45:23: Why start with Acceptance Tests?
          • Links:

            • EmberCLI Mirage
            • Ember Bind Helper
            • Sam Selikoff on Twitter
            • Ryan Toronto on Twitter
            • 1 hr 11 min
            • There's a bug in my FastBoot

              Topics include:

              • 0:00 Housekeeping: Upgrades, trainings, and nested dropdowns
              • 12:24: FastBoot bug 1: How HTML responses turn into DOM nodes
              • 37:22: FastBoot bug 2: XMLHTTPRequest and redirects
              • Links:

                • Sam Selikoff on Twitter
                • Ryan Toronto on Twitter
                • 1 hr 1 min
                • The forgotten middle class

                  Topics include:

                  • 03:16: Incidental complexity in SPA development
                  • 33:04: Dealing with undocumented but relied-upon behavior in OSS libraries
                  • Links:

                    • Sam Selikoff on Twitter
                    • Ryan Toronto on Twitter
                    • 55 min
                    • Thoughts on tracked properties

                      Sam and Ryan discuss the wording behind the proposed "@tracked" syntax and how it shapes their understanding of Ember's new programming model. They also talk about 404 pages, data ownership, and their upcoming EmberConf trainings.

                      Topics include:

                      • 0:00: Tracked properties
                      • 13:27: 404 pages
                      • 26:38: Smart components
                      • 41:00: EmberConf trainings
                      • Links:

                        • Ember Conf
                        • Component Side Effects
                        • EmberData Storefront
                        • Ember Animation
                        • Liquid Fire
                        • 57 min
                        • Incremental Ember upgrades

                          Sam and Ryan discuss a new process for upgrading Ember apps and Sam's experience using it on EmberMap's codebase. They also talk about leadership in Open Source projects and lessons learned from Mirage.

                          Topics include:

                          • 04:45: What is a leader's job?
                          • 13:17: Step-by-Step: Upgrading EmberMap
                          • Links:

                            • Most leaders don't even know the game they are in
                            • ember-cli-update
                            • Dependabot
                            • 59 min
                            • The elephant in the room

                              Sam and Ryan discuss the difficulty of working with a design system that doesn't have good escape hatches, how implementing HTML and CSS can be more complex and time-consuming than coding user behavior, and some creative approaches to ensuring JSON:API payloads represent canonical server-side state.

                              Topics include:

                              • 04:15: Design systems and when they break down
                              • 22:38: The complexity of implementing designs in HTML and CSS
                              • 34:38: JSON:API mutations. How incomplete response payloads can put your Ember app into an impossible state.
                              • Links:

                                • Forms
                                • JSON API Spec
                                • Conway’s Law
                                • 1 hr 5 min
                                • Going all in on "outside in"

                                  Sam and Ryan discuss getting Mirage and Ember to work in CodeSandbox, how FastBoot affects different approaches to rendering responsive content, and different ways an outside-in mindset can benefit product teams and open-source software projects.

                                  Topics include:

                                  • 2:50: Getting Ember and Mirage working on CodeSandbox. Coding in the browser.
                                  • 10:30: How FastBoot affects the use of screen width services
                                  • 24:40: Going all-in on outside-in development. Starting at the end.
                                  • Links:

                                    • CodeSandbox
                                    • Mirage boilerplate in CodeSandbox
                                    • EmberMap Email Course
                                    • Conway's Law
                                    • 42 min
                                    • A less constrained environment

                                      Sam and Ryan discuss new videos on async testing and declarative form validations. They also talk about why it's so hard to create good abstractions in Ember, or more generally the front-end landscape. They discuss constraints versus flexibility, and how the size of a library's problem space affects the likelihood of arriving at a good abstraction.

                                      Topics include:

                                      • 01:14: Lessons learned from the Async Testing series
                                      • 06:20: Forms: declarative validations, building blocks & escape hatches
                                      • 12:56: Why building forms in UI libraries is hard – unconstrained environments
                                      • 30:45: Philosophical differences, and over- vs. under-abstracting
                                      • Links:

                                        • EmberMap's premium series on Async Testing
                                        • Andrew Clark on Twitter
                                        • 42 min

                                        About Frontend First

                                        From the publisher's feed

                                        A podcast about modern UI development on the web. Hosted by Sam Selikoff and Ryan Toronto.

                                        More shows like Frontend First

                                        Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                                        Syntax - Tasty Web Development Treats

                                        987 Listeners