Sam Selikoff, Ryan Toronto
Frontend First
A podcast about modern UI development on the web. Hosted by Sam Selikoff and Ryan Toronto.
Author
Sam Selikoff, Ryan Toronto
Category
Podcast website
Latest episode
Dec 12, 2024
Where to listen?
Podcasts in the app Replaio Radio Coming soonPodcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts
Episodes
Imports are not code – they're declarations 11.10.2019 1:06:54
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-ori...
Server-side state means global resource identity 04.10.2019 1:13:34
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...
The Weekend Warrior Adoption Hypothesis 19.09.2019 1:08:52
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.nextrele...
Side effects aren't declarative. What if they were? 11.09.2019 1:11:53
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 ex...
What should be abstracted? 28.08.2019 55:59
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 21.08.2019 1:37:01
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 07.08.2019 1:19:12
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...
You gotta feel the pain 31.07.2019 1:34:05
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...
The burden of high-level APIs 18.07.2019 1:08:35
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 pag...
Are staging environments an anti-pattern? 11.07.2019 54:47
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 Reg...
When libraries go unmaintained 26.06.2019 1:00:31
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 improvi...
Microscopic Frontends 19.06.2019 51:36
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...
Open source isn't free 05.06.2019 56:18
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 EmberM...
Katie Gengler on the tech and processes that power the Ember community 29.05.2019 1:05:56
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 deep...
Stateless development environments 22.05.2019 48:57
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 08.05.2019 1:27:53
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 compar...
Frontend developers like us do things like this 01.05.2019 54:03
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...
Hark! The Halting problem sings 24.04.2019 1:02:08
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...
Edward Faulkner on Embroider, Ember CLI's modern build system 17.04.2019 1:53:40
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 programmi...
Derrick Reimer on SPA architecture with Elm and GraphQL 10.04.2019 1:32:15
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 u...
Do you trust your test suite? 04.04.2019 57:01
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...
Chris Garrett on Ember Octane 13.03.2019 1:05:48
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-tim...
SPAs should do more than server-rendered apps, not less 06.03.2019 55:45
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 w...
You still have to build two apps 27.02.2019 1:01:05
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 ba...
From build-time to run-time 13.02.2019 1:04:37
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 &quo...
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.