Frontend First cover image

Frontend First

Latest episodes

undefined
Feb 6, 2019 • 1h 2min

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
undefined
Jan 30, 2019 • 1h 11min

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
undefined
Jan 23, 2019 • 1h

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
undefined
Jan 16, 2019 • 55min

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
undefined
Jan 9, 2019 • 56min

Grab bag: Web vs Native, stale data, and build environments

Topics include: 0:00: Making movies 05:08: Ryan Florence's tweet about Twitter App 18:08: Ember Data stores across browsers 32:58: Laravel's ascending option 35:51: YouTube transition to UI pattern 42:15: Ember's build environments Links: Sam's Star Wars movie Ryan Florence on Twitter's PWA
undefined
Dec 19, 2018 • 56min

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
undefined
Dec 12, 2018 • 59min

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
undefined
Dec 5, 2018 • 1h 5min

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
undefined
Nov 28, 2018 • 42min

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
undefined
Nov 21, 2018 • 41min

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

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode