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

Dec 5, 2019 • 1h 25min
An ORM by any other name
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)- [Let's Program Like It's 1999 - Lee Byron](https://www.youtube.com/watch?v=vG8WpLr6y_U)- [Functional Programming in 40 Minutes - Russ Olsen](https://www.youtube.com/watch?v=0if71HOyVjY)- [Reason ML](https://reasonml.github.io)

Nov 27, 2019 • 1h 16min
When composability is not the answer
Topics include:0:00 – Livable code with Ember3:09 – Speeding up Ember builds, and bugs with React rebuilds7:09 – Undoing bad abstractions11:30 – Building a mobile nav with React Spring + Reach Modal18:48 – Documentation: Guides vs. How-tos vs. Examples34:40 – Composability, and awareness of React's children vs. Ember's yield38:30 – Structural vs. reusable components54:54 – UI Testing1:03:04 – Does advice for building good libraries transfer to buiding good apps?Links:What nobody tells you about documentation, by Daniele ProcidaReact SpringUsing Composition in React to Avoid "Prop Drilling", by Michael JacksonMirage and Cypress Quickstart

Nov 13, 2019 • 2h 3min
Yehuda Katz on Paradigms vs. Abstractions in UI Development
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?- 53:58 – The ES module spec, ES imports, and ES modules vs. CJS modules- 1:04:55 – Are TypeScript users at risk of the same kinds of syntax collisions that CoffeeScript users once were?- 1:10:10 – TypeScript now doesn't ship unstable features. (e.g. Optional chaining is stage 3)- 1:15:35 – Yehuda's take on stage 0 through stage 4 ECMAScript proposals- 1:23:39 – What's missing from UI development? And the difference between paradigms and abstractions.- 1:31:00 – Ember's original sin was push-based reactivity. Pull-based is how programs work.- 1:40:30 – Ember needs a new lifecycle entanglement primitive, that borrows concepts from both Hooks and Ember Concurrency tasks- 1:57:07 – How do you feel about UI development in 2019? Links:- [No Silver Bullet](http://worrydream.com/refs/Brooks-NoSilverBullet.pdf), by Fred Books- [React Hook Pitfalls](https://www.youtube.com/watch?v=VIRcX2X7EUk), by Kent C. Dodds

Oct 31, 2019 • 1h 17min
React is hard!
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/), on the Software Engineering Daily podcast- [The Dark language + editor](https://darklang.com/)

Oct 23, 2019 • 1h 11min
Does technology get popular for the right reasons?
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)

Oct 11, 2019 • 1h 7min
Imports are not code – they're declarations
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 Preview)](https://blog.emberjs.com/2019/09/25/ember-3-13-released.html)- [How to upgrade an Ember App or Addon](https://embermap.com/video/how-to-upgrade-an-ember-app-or-addon)- [Rich Harris and Edward Faulkner Twitter thread about ES module design](https://twitter.com/Rich_Harris/status/1176509180951322624)- [Twitter thread about ES module execution order](https://twitter.com/samselikoff/status/1182485014815993856)- [Sam Selikoff on Twitter](https://twitter.com/samselikoff)- [Ryan Toronto on Twitter](https://twitter.com/ryantotweets)

Oct 4, 2019 • 1h 14min
Server-side state means global resource identity
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/), mention EmberMap when you sign up for a trial and get 10% off Links:- [Mirage JS at ReactNYC S3:E8, Nov 7](https://www.meetup.com/ReactNYC/events/264933125/)- [Mirage JS](https://miragejs.com)- [Ember NYC September 2019 - Octane, Blockchain & Concurrency, Compiling Ember](https://www.youtube.com/watch?v=QClGEoHdQKk)- [Sam Selikoff on Twitter](https://twitter.com/samselikoff)- [Ryan Toronto on Twitter](https://twitter.com/ryantotweets)

Sep 19, 2019 • 1h 9min
The Weekend Warrior Adoption Hypothesis
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 Links:- [Hasura](https://hasura.io)- [graphql-js](https://graphql.org/graphql-js/)- [darklang](https://darklang.com)

Sep 11, 2019 • 1h 12min
Side effects aren't declarative. What if they were?
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 EmberMap when you sign up for a trial and get 10% off
Links:
Metaphysics and JavaScript, by Rich Harris
React's useEffect

Aug 28, 2019 • 56min
What should be abstracted?
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