#062 - Declaring War Against the Frontend feat. Sam Selikoff
· Summarized
Key takeaways
- Understanding abstractions is crucial; poor abstractions can complicate, rather than simplify development.
- There is a balance to be found between the high floor and high ceiling of frameworks, leveraging the strengths of both frontend and backend communities.
- Frontend should drive backend development to ensure products are built with the user experience in mind.
- Type flow from database to frontend is essential, while product decisions should be independent of backend constraints.
- React Server Components could transform application development by reducing complexity in handling state and data.
Summary
Introduction to Sam Selikoff
In this episode of Back End Banter, hosts engage with Sam Selikoff, co-host of the Frontend First podcast and an expert in frontend development. They reminisce about their previous encounter at Big Sky Dev Comp and delve into Sam's experiences in both frontend and backend work.
The Debate on Abstractions
A key topic discussed is the importance of understanding the layers below the tools developers use, like abstractions. Sam notes that while learning more about abstractions is beneficial, it can also lead to confusion if the abstractions are poor or 'leaky.' The conversation revolves around the ongoing struggle in the frontend community to create better abstractions that actually simplify development.
Full Stack Framework Discussions
They discuss the comparison between traditional backend frameworks such as Rails and Laravel versus newer JavaScript frameworks like React, Next.js, and Remix. These frameworks are trying to blend backend capabilities with frontend flexibility, but the discussion highlights how the old guard's insights can help new frameworks raise their floor (ease of use) while also providing the ceiling (flexibility).
Frontend Driving the Backend
The hosts emphasize the need for the frontend to dictate the requirements of the backend rather than the other way around. This approach fosters a better product development cycle where features are built with the user in mind.
Type Flow and Productivity
The discussion also happens around how types in programming should flow from the database to the frontend, while noting that product decisions should remain separate. This distinction helps maintain a clean separation of concerns, ensuring that features deliver user value without being bound by backend constraints.
React Server Components (RSCs)
In the latter part of the episode, Sam explains React Server Components (RSCs), which allow developers to render components exclusively on the server. RSCs promise to streamline data-fetching processes and reduce the cognitive overhead involved in client-side state management. This innovation could ultimately unify how developers work with their applications, blending server and client interactions more seamlessly.
Sponsors
- Boot.dev · Learn back-end development
Show notes
In today’s episode, we go to war with Sam Selikoff, co-host of the Frontend First podcast, and specialist on everything Frontend related.
We have an amazing conversation where we discuss Sam’s journey, as he also did some backend work in the past, we talk about abstractions, what JavaScript is doing differently from other languages and frameworks, why the frontend should be driving the backend and not the other way around, and finish it off with a discussion about RSCs (React Server Components).
Learn back-end development - https://www.boot.dev
Listen on your favorite podcast player: https://www.backendbanter.fm
Frontend First: https://frontendfirst.fm/
Sam's X/Twitter: https://x.com/samselikoff
Sam's Youtube: https://www.youtube.com/samselikoff
Timestamps:
00:00 Intro
00:51 Who is Sam Selikoff
02:12 Abstractions - Should you go a level deeper?
06:37 What was Sam's talk about
10:51 What is JavaScript doing differently?
19:10 Do you want the frameworks to push more features out of the box for backend work?
24:04 Strong opinions on a library level
30:29 Shipping more standardized interfaces
37:06 The frontend should be driving everything in the backend
39:12 Your types should flow from the database to the frontend, but not the product decisions
46:53 React Server Components
58:49 Where to find Sam
Follow this show on AudioBrevity and new episodes get summarized for you. Create a free account