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

May 18, 2018 • 41min
Test before commit
Sam and Ryan chat about Ember at Microconf, two-way bindings, and TDD vs. "Test before commit".
Topics:
0:00 – When direct state mutations make sense
8:15 – Ember at MicroConf & how other communities think about Ember
29:42 – TDD versus “Test before commit”
Links:
Pure UI by Guillermo Rauch

9 snips
May 11, 2018 • 1h 7min
Adam Wathan on Tailwind CSS
Adam Wathan, the creator of Tailwind CSS, talks about coupling in HTML and CSS, different styling approaches, messy templates, component classes in Tailwind, CSS patterns in SPA, experimental design tools, and the future of Tailwind.

May 3, 2018 • 1h 5min
Robert Jackson and Tom Dale on Ember at LinkedIn
Robert and Tom join Sam and Ryan to chat about how LinkedIn uses Ember, when teams should use Engines, build optimizations that are coming to Ember CLI and more.
Topics:
0:00 – Engineering challenges of scale at LinkedIn
6:00 – Engines at LinkedIn
8:40 – When should teams use Engines?
15:25 – What are some of the downsides of Engines?
17:38 – Build-time versus AOT library transpilation
21:47 – How just-in-time compilation relates to code-splitting and importing node modules
29:50 – Ember’s philosophy on bringing new JS features to years-old apps
32:55 – How can the community be most helpful when contributing to Ember?
41:32 – Analytics and performance tracking at LinkedIn
46:07 – What are your thoughts on Vue.js? (Question from jamiewhite)
52:18 – How can we help improve the developer experience of using Handlebars templates (autocomplete, error correction, template linting, etc.)?
1:02:40 – Moving questions from Slack to the Discussion forum

Apr 26, 2018 • 48min
Concretions and abstractions
Sam and Ryan chat about Tailwind and compilers (again), Ryan's EmberJS homepage teardown, and releasing with git tags. They also answer some listener questions.
Topics covered:
0:00 – Compilers, Tailwind, and APIs for styling components
17:00 – Ember.js Homepage teardown
30:48 – git tag for immutable gh references
We also answers some listener questions:
37:14 – Q: What's the deal with using websockets in Ember? Any good patterns beyond creating some kind of Ember service to listen to the socket and push data into the store? (@yohanishkin on Slack)
40:57 – Not sure if you’ve talked about it at all yet, but the this topic seems worth further exploration: [Should Ember better define its use of Slack?] @mattmcmanus

Apr 19, 2018 • 54min
Sketch Prototyping and Amazon Workspaces
Sam and Ryan chat about Sketch’s new Prototyping feature, using Amazon Workspaces to develop Ember apps in a Windows environment on a Mac, and how to use git tag to ensure your project’s dependencies don’t disappear. They also answer some listener questions.
Topics
Sketch prototyping + design
Ember on Windows
git tag for immutable gh references
Questions
Q: with the latest Router service it’s possible to transition to another page from everywhere in the code. Before, we created specific actions in the route, just to transition to another page. Is transitioning to other pages from inside components considered a bad practise, or is it totally fine (My co workers feels it’s ‘dirty’ to transition from inside components.)? Do you have any guidelines when and where to transition with the new service? (edited) (@maarten from Slack)
Can you use mirage for other applications as well? (ex: Rails app with same API dependencies as Ember.) (https://twitter.com/keystonelemur/status/979777292745363456)
Can you talk about how to upgrade ember.js smoothly? I always have trouble bumping our ember version, mainly I think due to some add-ons. But the error message are not that useful. (https://twitter.com/tantantanmian/status/980662478374805505)

Apr 12, 2018 • 1h 29min
Alex Matchneer on Routing Patterns
Alex Matchneer chats with Sam and Ryan about challenging routing patterns in Ember, his involvement with the Ember community, and what Ember’s next router might look like.
Topics covered:
Routing patterns from mobile apps that are difficult with Ember
Lessons learned from community involvement
The concept of timespans
Fighting community conventions
Server-driven state changes
Declarative routing
Alex also answers some listener questions:
When are you going to release a full album?
If you could improve one thing with Ember, what would it be and why?
Do you have strategies for teaching ember-concurrency to someone who doesn't know about generator functions? Do you try to teach those separately first?
What are some JavaScript patterns you don't see being used as often as you think they should?
What are some concepts/design patterns you wish all developers would know about and internalize?
How do non-ember-core members become more involved in ember-core? What are some ways to bridge the gap between basic contributions and the complicated RFC process? How do you drive community change from only addon code?

Apr 5, 2018 • 47min
Steelman vs. strawman
Sam and Ryan talk about their new series, “Declarative rendering,” and why we should use steelman arguments instead of strawman arguments when talking about technology. They also answer some listener questions.
Topics covered:
Declarative rendering, their new series
Steelman versus strawman arguments
Listener questions:
I care about lazy loading ember code, like routes. My knowledge is that’s its only possible with ember engines, but I’m not sure. Thanks a lot – @sommer_gerrit on Twitter
Podcast about ember-engines might be cool – @iflask on Twitter
My question: is it time to pitch PWA instead of native apps for clients wanting a presence on mobile (re: the new Safari release) – @real_ate on Twitter
Question for the show -> how might writing glimmer components be different in the coming months as we unlock that as first class (thru the eyes of a traditional ember 2 developer) – @toranb on #topic-embermap from Slack
Ember Data can get complicated in a hurry when not using a JSON:API standard API. What are some strategies to work with these kinds of APIs assuming the API cannot be changed? – @localpcguy on #topic-embermap from Slack

Mar 30, 2018 • 48min
Making the impossible, impossible
Sam and Ryan talk about
Functional CSS training at EmberConf
Some ideas for hiding styling implementation details from templates
A new setup for multiple staging environments
An idea from data modeling called “Making the impossible, impossible”
How to use data down actions up effectively in forms
They also answer some listener questions:
When should I use polymorphic or reflexive relationships?
When do I need to explicitly name a relationship’s inverse?
When should I reference relationships and when should I embed them?

Mar 7, 2018 • 51min
Oli Griffiths on the Benefits of Static Typing and How Broccoli Works
Oli Griffiths joins Sam and Ryan to talk about his experience using typed languages, what kinds of benefits static could bring to the Ember developer experience, and his upcoming EmberConf training on Broccoli.js.

Feb 22, 2018 • 45min
JSONAPI Operations, Caching in FastBoot, and Ember's Strengths
Sam and Ryan talk about the upcoming Operations addition to the JSON:API spec, adding FastBoot support to Storefront, how to think about caching in Fastboot, and a thought experiment around how Ember might niche down and focus on its strengths.