Frontend First artwork

Frontend First

185 episodes - English - Latest episode: 11 days ago - ★★★★★ - 18 ratings

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

Technology technology web javascript ember ember.js software development design
Homepage Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed

Episodes

Launching Mirage JS!

January 29, 2020 11:00 - 43 minutes - 40.1 MB

Topics include: - 2:46 – Launching Mirage JS! - 10:17 – Feeling empowered bringing Mirage to the wider JS ecosystem, and what's next for Mirage - 19:40 – A Mirage tutorial + video series - 19:30 – GraphQL support in Mirage - 30:13 – TypeScript support in Mirage - 37:25 – Node support in Mirage   Links: - [Mirage's new homepage](https://miragejs.com)

When UI isn't a function of state

January 22, 2020 11:00 - 1 hour - 59.8 MB

Topics include: - 4:45 - Building out Mirage's new homepage. SVG positioning. - 15:42 - CSS Grid for layouts - 19:36 - Update on launching Mirage JS. Adding types to Mirage. - 24:09 - Learning about idempotence through React Spring. What to do when UI isn't a function of state. - 52:40 - Sharp tools vs. high-level APIs   Links: - [React Spring](https://www.react-spring.io) - [Small, Sharp Tools](https://brandur.org/small-sharp-tools)

How should we style the stuff in between components?

January 08, 2020 11:00 - 59 minutes - 54.7 MB

Topics include: 3:17 - Refactoring to Tailwind defaults 11:17 - What exactly are Container components? 17:35 - Marginless components 23:40 - Grids 25:50 - What you can learn by using Tailwind defaults 41:00 - Using Mirage tests to re-create development scenarios 50:45 - Frontend First Links: Tailwind CSS ReactiveConf 2019 - Mark Dalgleish: Rethinking Design Practices Frontend First Development

Which concepts should a framework teach?

December 20, 2019 11:00 - 1 hour - 63.9 MB

Topics include: - 0:40 – Which concepts should a framework be responsible for teaching? - 7:20 – What does it actually take for someone to start using a framework? And Vue's multiparadigm approach. - 16:32 – What if Ember Data wasn't part of Ember? - 29:50 – Functional digression - 37:00 – Back to Ember Data! - 43:34 – When paradigms conflict with each other - 49:46 – Back to Ember Data, again!   Links: - [Vue composition API](https://vue-composition-api-rfc.netlify.com) - [MobX](...

An ORM by any other name

December 05, 2019 11:00 - 1 hour - 77.8 MB

Topics include: - 5:41 – Hasura, React, URQL + Formik = Nutrition app - 44:51 – React to the Future by Jordan Walke   Links: - [URQL](https://formidable.com/open-source/urql/) - [Formik](https://jaredpalmer.com/formik) - [Reach Dialog](https://reacttraining.com/reach-ui/dialog) - [Dan Abramov's tweet on controlled/uncontrolled components](https://twitter.com/dan_abramov/status/1200436185426006017) - [React to the Future - Jordan Walke](https://www.youtube.com/watch?v=5fG_lyNuEAw) -...

When composability is not the answer

November 27, 2019 11:00 - 1 hour - 70 MB

Topics include: 0:00 – Livable code with Ember 3:09 – Speeding up Ember builds, and bugs with React rebuilds 7:09 – Undoing bad abstractions 11:30 – Building a mobile nav with React Spring + Reach Modal 18:48 – Documentation: Guides vs. How-tos vs. Examples 34:40 – Composability, and awareness of React's children vs. Ember's yield 38:30 – Structural vs. reusable components 54:54 – UI Testing 1:03:04 – Does advice for building good libraries transfer to buiding good apps? Links: Wh...

Yehuda Katz on Paradigms vs. Abstractions in UI Development

November 13, 2019 11:00 - 2 hours - 113 MB

Topics include: - 1:46 – Exploring the React paradigm - 11:45 – How have your opinions on UI dev changed since starting Ember? - 16:00 – How React's render functions and Ember's templates both solve the same problem: how to restrict the rendering code that users write - 34:03 – JavaScript's multiparadigm approach: OOP + functional - 40:13 - Hooks and the importance of lifecycle entanglement - 46:15 – Do Hooks succeed in bringing the ideas of declarative rendering to our JavaScript code...

React is hard!

October 31, 2019 10:00 - 1 hour - 70.9 MB

Topics include: - 0:32 – React is hard! - 7:55 – Should we be thinking about render cycles while writing React? - 30:08 – How much objective coding advice is there? - 39:23 – The Dark language + platform, and how concurrent languages can work against serverless architecture - 57:57 – Deployless architecture - 1:02:25 – Auth in Hasura   Links: - [Dark Lang with Ellen Chisa and Paul Biggar](https://softwareengineeringdaily.com/2019/10/21/dark-lang-with-ellen-chisa-and-paul-biggar/), o...

Does technology get popular for the right reasons?

October 23, 2019 10:00 - 1 hour - 65.2 MB

Topics include: - 0:57 – Wanting to learn more about GraphQL - 14:41 – Constraints, theory and reality in GraphQL and REST APIs - 21:54 – What matters when choosing technology? - 35:06 – Can GraphQL queries and types replace traditional ORMs? - 48:47 – Why did Rails and other technologies become popular? Does it matter? - 1:00:48 – Is there objectively true advice in programming?   Links: - [The Bike Shed # 215: Start With People](https://bikeshed.fm/episodes/215)

Imports are not code – they're declarations

October 11, 2019 18:09 - 1 hour - 61.2 MB

Topics include: - 2:31 – Tailwind, PostCSS, and low-level vs. high-level tools - 13:12 – Mirage JS and Cypress - 13:55 – Ember 3.13 and Octane - 15:28 – Ryan's experiencing upgrading EmberMap from 3.4 to 3.12 - 20:19 - ES Modules, and learning that imports are not code - 42:12 – React and useEffect, and the difference between reads and writes vs. rendering and event handlers - 1:00:50 – Object-oriented vs. functional programming in JavaScript   Links: - [Ember 3.13 Release (Octane ...

Server-side state means global resource identity

October 04, 2019 10:00 - 1 hour - 67.3 MB

Topics include: - 0:00 – Dealing with asynchrony and persistence in Vue - 8:56 – Thoughts on Vue's APIs, and how they compare with React and Ember - 22:20 – "Magic" in UI frameworks vs. server-side frameworks - 27:17 – Build work in Mirage JS, and a new passthrough API - 38:26 - How opinionated should project documentation be? - 50:40 - Edward Faulkner's talk on compilers, abstractions, ES modules, and Embroider   Sponsors: - [Next Release](https://www.nextrelease.io/ember/), mentio...

The Weekend Warrior Adoption Hypothesis

September 19, 2019 10:00 - 1 hour - 63.1 MB

Topics include: - 0:39 – The "Weekend Warrior" technology adoption hypothesis - 6:55 – Gatsby as a soft intro to GraphQL - 8:55 – Building a GraphQL backend with Hasura - 18:08 – GraphQL mutations - 21:47 – Mocking out GraphQL in Mirage - 45:03 – Gotchas when using backends as a service - 49:47 – DX and user success vs. "correct" technology choices   Sponsors: - [Next Release](https://www.nextrelease.io/ember/), mention EmberMap when you sign up for a trial and get 10% off   Link...

Side effects aren't declarative. What if they were?

September 11, 2019 10:00 - 1 hour - 65.8 MB

Topics include: 0:53 – Metaphysics and JavaScript by Rich Harris, and declarative side effects 15:26 – An Ember example that would be improved by hooks and declarative side effects 23:46 – Pitfalls and escape hatches when using hooks 35:40 – Rich's argument that rendering isn't even a declarative function of state, let alone side effects 41:42 – Deeper dive into useEffect docs 1:01:41 – Thought experiment on effects that sync with different data stores Sponsors: Next Release, mention...

What should be abstracted?

August 28, 2019 10:00 - 55 minutes - 51.3 MB

Topics include: 2:41 – Playing with Typescript 10:13 – Thoughts on Ember's decision to expose Properties vs. Attributes 32:09 – "How long will this take?" 45:15 – Debugging slow Mirage factories Sponsors: Next Release, mention EmberMap when you sign up for a trial and get 10% off Links: Shape Up Copy, Paste, Repeat Podcast

APIs are about Policy

August 21, 2019 12:59 - 1 hour - 88.8 MB

Topics include: 1:37 – APIs are about Policy, by Steven Wittens 5:47 – Part 1: RESTless API 49:16 – Part 2: Regressive Web Apps 1:08:19 – Part 3: GraftQL Links: APIs are about Policy, by Steven Wittens

Object references considered helpful

August 07, 2019 10:00 - 1 hour - 72.5 MB

Topics include: 0:00 – Unique keys for lists in React and Ember 8:40 – Why Handlebars feels safe 9:34 – Solving a stale state React hooks bug, and how Ember avoids this via object references 24:29 – ESPN's website and self-imposed technical constraints 28:10 – React in Codesandbox 36:53 – Tradeoffs between "magic" in a framework vs. learning how to wire things up yourself - especially in a fast-moving ecosystem like JavaScript 50:35 – Hooks vs. components, and clarity in boundaries 5...

You gotta feel the pain

July 31, 2019 10:00 - 1 hour - 86.1 MB

Topics include: 5:26 – Bringing Mirage to a wider JavaScript audience 17:14 – Setting up tests in Gatsby, and why wiring up boilerplate code is not always bad 28:56 – React's children API, MDX, and template imports in Ember 39:17 – How extracting things in React feels compared to extracting things in Ember 42:30 – React's children, and constraints vs. flexibility 1:05:52 – API design, and letting someone feel the pain rather than telling them they can't do something 1:23:16 - Dynamic ...

The burden of high-level APIs

July 18, 2019 16:14 - 1 hour - 62.8 MB

Topics include: 2:45 – Using Gatsby to build miragejs.com 12:05 – Tradeoffs between low-level and high-level APIs 30:21 – Writing Gatsby data providers, and using GraphQL to query Gatsby's content mesh 41:33 – GraphQL vs. REST is wrong 44:16 – API design 58:45 – What's the best architecture for building modern UIs on the web? Sponsors: TrueCoach, check out their engineering culture and hiring pages Links: Mirage.js Gatsby GraphQL

Are staging environments an anti-pattern?

July 11, 2019 10:00 - 54 minutes - 50.2 MB

Topics include: 1:35 – The benefit of no staging environments 10:14 – Using FastBoot without a runtime dependency, and pre-rendered SPAs 17:30 – Sponsor: TrueCoach is hiring! 23:02 – UI feedback, and Designing Fluid Interfaces by Apple 39:24 – Working with custom fonts, and typography lessons learned Sponsors: TrueCoach, check out their engineering culture and hiring pages Links: Percy Visual Regression Testing Launch Darkly Designing Fluid Interfaces, from Apple, WWDC 2018 The I...

When libraries go unmaintained

June 26, 2019 10:00 - 1 hour - 55.4 MB

Topics include: 2:44 – What to do if your app depends on an unmaintained addon 26:15 – The workflow of designers who are also coders 32:31 – Why the status quo of web tooling is insufficient for multi-app workflows 41:46 – Side effects in React and Ember, and how Hooks help authors avoid making API mistakes Links: Ember CLI Deprecation Workflow Adopted Ember Addons Matthew Beale's tweet on improving library APIs

Microscopic Frontends

June 19, 2019 10:00 - 51 minutes - 47.2 MB

Topics include: 0:00 – Playing with React JS Using React after working with Ember for 5 years React's onboarding experience Why early success matters for OSS adoption 15:44 – Micro Frontends Comparison with service-oriented architecture Our experience using micro frontends at TED The tradeoffs that matter most to us 47:56 – Call for conversation: Ember-turned-React dev Links: Micro Frontends, by Cam Jackson

Open source isn't free

June 05, 2019 10:00 - 56 minutes - 51.5 MB

Topics include: 3:50 – Opinions on DHH's 2019 RailsConf keynote about sustainable open source 23:28 – Keeping tests dumb, dynamic tests, and TDD workflow tradeoffs 36:31 – Octane is not ready, and our conservative approach to adopting new tech 47:50 – Tailwind 1.0 53:23 – New series: Ember Animated Links: DHH's 2019 RailsConf keynote Crash Log podcast Robert Jackson's #EmberJS2019 blog post EmberMap's new series on Ember Animated series

Katie Gengler on the tech and processes that power the Ember community

May 29, 2019 10:00 - 1 hour - 54.5 MB

Topics include: 2:26 - Ember's 2019 Call for Blog Posts, and a retro on last year's call 7:50 - Why Katie's looking forward to Embroider, Ember Data, and updates to the Router 10:52 - What the process is for "finishing" Octane 14:37 - Katie's experience on the Steering Committee 18:02 - The infrastructure behind Ember Try and Ember Observer 34:18 - Common anti-patterns in apps, like deeply nested components 39:18 - Katie's preference for acceptance tests over unit tests in UI developm...

Stateless development environments

May 22, 2019 10:00 - 48 minutes - 45.4 MB

Topics include: 4:25 – Causes of burnout other than overwork 9:02 – Finalizing Mirage 1.0 10:42 – Keeping your development environment stateless 21:00 - Unified APIs for backend and frontend data queries 42:28 – Tailwind 1.0 Links: Copy Paste Repeat Ep. 18 Twitter conversation between Trek and Sam on shared UI models Sam on Twitter Ryan on Twitter

Nathan Selikoff on Omnimodal's real-time tech stack

May 08, 2019 10:00 - 1 hour - 77.6 MB

Topics include: 4:23 – Overview of Omnimodal's tech stack 6:38 – Omnimodal's mission: to help cities manage transportation demand 16:10 – How to ingest open transportation data and present it in real time 21:43 – How graphics-heavy OpenGL and C++ apps can benefit from web tooling 31:06 – Why state machines are used in both video game and web development 34:55 – How JavaScript UI development compares to other paradigms 38:46 – Why Ember and Rails were chosen for Omnimodal's technology ...

Frontend developers like us do things like this

May 01, 2019 10:00 - 54 minutes - 49.3 MB

Topics include: 3:12 – Getting Mirage 1.0 out the door, Mirage's roadmap, and how other communities treat domain modeling 15:18 – Seth Godin's blog post on tribal marketing 27:08 – Sustainability and project management in open source 48:06 – What benefits do products actually unlock? Links: Ember CLI v1.0.0-beta.1 released "People like us do things like this" by Seth Godin Justin Jackson on Full Stack Radio Transistor.fm

Hark! The Halting problem sings

April 24, 2019 10:00 - 1 hour - 56.5 MB

Topics include: 0:00 – Letting your yes be yes, following through on your commitments, and paying attention to opportunity cost 6:40 – When Ember releases actually become LTS versions 9:13 – Why we need "test apps" when developing Addons 16:50 – How to use newer syntax when authoring Addons that support older Ember versions 22:07 – How angle brackets change our component implementations 31:46 – How to make the APIs of our domain components more portable 38:45 – How to reuse code that ...

Edward Faulkner on Embroider, Ember CLI's modern build system

April 17, 2019 10:00 - 1 hour - 95.4 MB

Edward Faulkner joins Sam and Ryan to chat about his work on Embroider, a new three-stage architecture that will power the next generation of the Ember CLI ecosystem. They also talk about myriad other topics, including Yarn Plug'n'Play, the benefits of debugging other people's code, how Ember is embracing the larger JavaScript ecosystem, and more. Topics include: 0:00 – What's hard about programming, why schools are bad at teaching math, and more 10:47 – Why computers should empower ordin...

Derrick Reimer on SPA architecture with Elm and GraphQL

April 10, 2019 10:00 - 1 hour - 84.5 MB

Derrick Reimer joins Sam and Ryan to chat about building his new real-time chat product Level as an SPA using Elm, Phoenix and GraphQL. He covers domain modeling in Phoenix, his experience building his first GraphQL API, type safety in Elm, and the data fetching patterns he's using to support his application's real-time functionality. Topics include: 2:01 – What is Level? What tech stack are you using to build it? 14:34 – Building the GraphQL API with Phoenix and Absinthe 37:40 – Buildin...

Do you trust your test suite?

April 04, 2019 10:00 - 57 minutes - 52.3 MB

Sam and Ryan continue their discussion from the end of Episode 54 about how much we actually rely on our test suites versus how much implicit trust we place in semver. They also talk about some new Ember Octane features as well as a data-fetching issue. Topics include: 2:00 – Do we trust our test suites? 10:00 – Breaking APIs in a changelog vs. in code 20:27 – Modifiers – they're kinda like mixins 37:17 – Named blocks 38:29 – Ember Octane & EmberConf trainings 43:15 – Fetching user-sp...

Chris Garrett on Ember Octane

March 13, 2019 14:26 - 1 hour - 60.3 MB

Chris Garrett joins Sam and Ryan to chat about what's coming to Ember in Octane, its first edition. Chris talks about how module unification, decorators, ES6 classes, named args, angle-bracket components, template imports, modifiers, and Glimmer components offer a cohesive new programming model for Ember.js developers. Topics include: 1:18 – De-scoping Module Unification from Octane 2:25 – Run-time APIs are coming to Octane, build-time APIs are being worked on 5:04 – What's the vision be...

SPAs should do more than server-rendered apps, not less

March 06, 2019 11:00 - 55 minutes - 51.1 MB

Topics include: 0:00 - Module unification 1:20 - Component resolution 5:45 - Why we don't use angle brackets 9:35 - SPAs should do everything a server app can do 10:15 - Ember's Router 11:00 - Replicating the server's "fresh data" behavior 17:15 - Reloading stale data 23:50 - Fetching data 23:50 - Getting Mirage working with React and Vue 26:10 - Data loading components 29:41 - Knowing what queries are currently rendered 32:15 - Using cache keys to track what data is loaded 35:0...

You still have to build two apps

February 27, 2019 11:00 - 1 hour - 56 MB

Topics include: 0:00 - Refreshing an Ember app when a new version is deployed 11:05 - When SPAs become too difficult 14:50 - Building an SPA never got as quick as we'd hoped 19:20 - You're now responsible for two applications 28:00 - Integration costs 32:00 - Architecture is easier within a single monolith 40:20 - Beginners should use the same tools as experts 40:50 - Rolling advanced solutions back into the framework 47:41 - Services that are used by both beginners and experts 52:...

From build-time to run-time

February 13, 2019 11:00 - 1 hour - 59.3 MB

Topics include: 01:15 - Implementing Mirage's AddonDocs blog with GitHub issues 15:30 - Discussion forum vs. GitHub issues vs. blog comments 18:18 - Moving the blog post source to a GitHub issue 23:30 - Dynamic vs. static data, and implications for changing build-time data to run-time data. 27:40 - Downsides of run-time data 37:00 - SPA architecture and distributed systems. How does React/Vue "happy path" architecture differ from Ember's? 41:45 - Testing is the only true way to know i...

Lenient libraries, strict applications

February 06, 2019 11:00 - 1 hour - 56.5 MB

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...

Mirage, meet Addon Docs!

January 30, 2019 11:00 - 1 hour - 64.8 MB

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

There's a bug in my FastBoot

January 23, 2019 11:00 - 1 hour - 55.3 MB

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

The forgotten middle class

January 16, 2019 11:00 - 54 minutes - 50.1 MB

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

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

January 09, 2019 11:31 - 55 minutes - 51.2 MB

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

Thoughts on tracked properties

December 19, 2018 11:00 - 56 minutes - 51.6 MB

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

Incremental Ember upgrades

December 12, 2018 11:00 - 58 minutes - 53.9 MB

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

The elephant in the room

December 05, 2018 13:00 - 1 hour - 59.3 MB

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 pu...

Going all in on "outside in"

November 28, 2018 13:50 - 41 minutes - 38.1 MB

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 ...

A less constrained environment

November 21, 2018 13:00 - 41 minutes - 38.1 MB

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 ...

Recursive partial application

November 14, 2018 13:00 - 1 hour - 56.7 MB

Sam and Ryan discuss an elegant solution to the async nested dropdown problem, a FastBoot success story regarding inlined CSS, pre-warming FastBoot's cache, and implementing a new design alongside an existing design language. Topics include: 01:11: Solving the nested dropdown by recursively currying an action 25:00: Inlined CSS and caching with FastBoot 40:22: Challenges implementing a new design in an existing design language Links: PurgeCSS

Compose wisely

November 06, 2018 13:17 - 58 minutes - 53.8 MB

Sam and Ryan chat about the challenges of testing custom asynchronous code. They also talk about React's new Hooks API, and discuss situations where hooks might be more composable than yields and contextual components. Topics include: 00:00 – Testing custom asynchronous code, like an animated bar chart 25:23 – React's new Hooks API Links: EmberMap Async testing series API docs for Ember's testing helpers Overview of React Hooks with Dan Abramov and Sophie Alpert 90% Cleaner React wit...

A dropdown nest

October 30, 2018 18:10 - 55 minutes - 51 MB

Sam and Ryan talk about the challenges of building nested dropdowns, whether a component reading data from its children is an anti-pattern, how angle-bracket syntax encourages new components, and whether “CSS best practices” exist. Topics include: 00:40 – Thinking through a nested drop-down navigation menu 35:15 – Building an component & angle-bracket syntax 45:00 – Layout UI primitives 46:35 – What are CSS best practices? How might Tailwind encourage these? 52:17 – "Semantic" classes...

Your frontend is ready for production

October 19, 2018 19:13 - 54 minutes - 50 MB

Sam and Ryan talk about their upcoming email course on Ember component patterns, wrapping up their EmberMap series on Functional CSS, refactoring some FastBoot code in Node, and how Mirage might be useful if it could run as a real server. Topics include: 0:30 - Email course in Ember Component Design 8:00 - EmberMap course on Functional CSS with Ember Do you have a preferred API for styled component variants? See Sam's tweet below. 14:00 - FastBoot, and refactoring and testing Node code ...

Scope down!

October 12, 2018 19:16 - 1 hour - 56.2 MB

Sam and Ryan talk about lessons from Jason Fried's Q&A about scoping down product features, and how that applies to our open-source work. They also talk about inlining critical-path CSS with FastBoot. Topics include: Inlining CSS with FastBoot (0:08) Scoping down (14:26) Jason Fried's Q&A at Laracon Scoping down at work and in OSS How to handle OSS contributors who add scope How bugs indicate a larger-than-expected problem space How to say no to new features you can't commit to suppo...

Can small libraries be conventional?

October 03, 2018 18:08 - 1 hour - 60.4 MB

Sam and Ryan chat about two new EmberMap series, Forms and Async testing, as well as Sam's keynote at EmberCamp and the best way to avoid product gaps in open-source software. They also answer some listener questions. Topics include: Forms (1:18) Splitting forms into containers and presenters Avoiding premature abstractions (7:03) Which components do you carry from project to project? Asynchronous testing (14:47) Testing animations Sam's keynote at EmberCamp on Product gaps (19:04) ...

Twitter Mentions

@samselikoff 21 Episodes
@ryantotweets 16 Episodes
@dan_abramov 7 Episodes
@sebmarkbage 3 Episodes
@ryanflorence 3 Episodes
@rich_harris 2 Episodes
@rauchg 2 Episodes
@garybernhardt 2 Episodes
@pzuraq 1 Episode
@joshwcomeau 1 Episode
@davewasmer 1 Episode
@lukemelia 1 Episode
@floydophone 1 Episode
@katiegengler 1 Episode
@keystonelemur 1 Episode
@jwwweber 1 Episode
@getajobmike 1 Episode
@nselikoff 1 Episode
@derrickreimer 1 Episode
@tantantanmian 1 Episode