
Full Stack Radio
A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration.
Episodes
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
I talk to DHH about Omarchy, the carefully curated distribution of Arch Linux he's been refining for the last few months.We talk about stuff like:How did he discover Arch + Hyprland in the first place?What even is Arch, what even is Hyprland, and how the fuck do you make the mouse show up in Linux?Should you really be afraid of trying to maintain your own Linux installation?What are the m
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
Topics:Putting yourself in the shoes of the person reviewing your applicationCrafting a high quality application tailored to a specific positionStanding out in a more traditional hiring process by doing something a little extraShowcasing very specific examples of your work instead of asking the person reviewing your application to go hunting for itHaving good questions for the person inte
151: DHH – Building HEY with Hotwire
Links:HotwireHEYSupporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to purchase one of my products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.Refactoring UI, a book and
150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0
Supporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to check out our products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.Statamic 3, Jack's full-featured flat-file CMS,
149: Choosing a Payment Processor, Radical Icons & W3C Hype
Links:Changes to Gumroad's PayPal supportRadical iconsJack's hand-drawn avatarsW3C's CMS Selection ReportSupporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to check out our products:Tailwind UI, a collection of professionally designed,
148: Accessible Focus Styles, Tailwind Labs on YouTube, and Secret Projects
Supporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to check out our products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.Statamic 3, Jack's full-featured flat-file CMS,
147: Surviving GitHub Issues, the Statamic 3 Launch Aftermath, Tailwind 1.8, and Headless UI
Supporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to check out our products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.Statamic 3, Jack's full-featured flat-file CMS,
146: Launching Statamic 3, GitHub Sponsors, Tailwind CSS v1.7, and Preparing for Laracon
Adam and Jack talk about how the Statamic 3 launch went, and adding GitHub Sponsor tiers to the Statamic GitHub organization and what to give people in exchange for sponsoring. They also talk about the new Tailwind CSS v1.7 release, and the new features like gradient support. Finally, they work through some ideas Adam is preparing for his Laracon talk on “Building component libraries with
145: Statamic 3.0 and Tailwind CSS 2.0
LinksStatamic 3.0Tailwind CSS v1.7.0@90sWWE on Twitter
144: Gary Bernhardt - TypeScript and Testing
Topics include:Why Gary decided to write Execute Program as a full-stack TypeScript application instead of using a Ruby or Python backend like he may have traditionallyDo you actually have to write less tests if you have a good type system?What does a good type system give you that tests can't give you?Using io-ts to type check incoming dataHow to think about structuring your code to best
143: Rich Harris - Svelte and Defending the Modern Web
Topics include:What is Svelte and how is it different than other JS frameworks in the space?What special behavior does the Svelte compiler layer on top of vanilla JS syntax and why?Why the lack of render functions in Svelte isn't a real problem in practiceWhat are you giving up when you choose to build your application with something like Rails instead of JavaScript?Why should we be tryin
142: Jason Cohen - Learning to Hire and Manage a Team
Topics include:How do you decide what role to hire for?Why it's so important to figure out exactly what your biggest struggle is before hiringHow to decide what the most important thing to focus on is when it feels like there's too much to doWhy it's important to consider the impact of hiring for a specific role on your own happiness vs. just the company's bottom lineComing to terms with
141: Jason Fried - Running the Tailwind Business on Basecamp
Topics include:How did Basecamp evolve from being a team/client communication tool to focusing on keeping your whole company organized, and is it really even that different?How exactly should we set up Basecamp on day one to support a small 3-5 person remote software team? What tools should we use and which ones should we ignore for now?Finding the balance between being organized enough a
140: Evan You - Reimagining the Modern Dev Server with Vite
Topics include:What is Vite and what makes it different than existing tools like Webpack?How do ES Modules actually work in the browser and what are the limitations?Will we ever be able to use ES Modules in production for large complex projects?How does Vite work under the hood, and how does it support non-JS files like Vue files, or CSS files?How hot module replacement is implemented und
139: Alex DeBrie - DynamoDB for Relational Database Diehards
Topics include:Does DynamoDB only make sense for things like your cache, or is it a good choice for a primary data store?An overview of the terminology used in DynamoDB and how the terminology compares to a relational databaseHow primary keys work in DynamoDBWhat data types are available in DynamoDBHow DynamoDB is a schemaless databaseWhy it's important to understand your access patterns
138: Tom Preston-Werner - Building Full-Stack JS Apps with Redwood.js
Topics include:What does it mean for Redwood to be a JAMStack framework?What does the React layer look like? What’s new, and what’s leveraging existing community tools?Why Redwood ships with it’s own routing layerWhat “cells” are in Redwood, and how they aim to provide a declarative abstraction on top of data fetchingHow Redwood tries to provide clear decoupling behind the front-end and b
137: Tim Neutkens - Continuing to Innovate with Next.js 9.3
Topics include:An overview of the new getStaticProps, getStaticPaths, and getServerSideProps APIsHow Next.js helps you serve static pages from an edge CDN automatically, without affecting the actual authoring experienceUsing getStaticPaths to statically pregenerate dynamic routesHow the fallback feature of getStaticPaths works and lets you statically render pages on-demand to avoid long b
136: Michael Chan - React Is Not a Rails Competitor
Topics include:What do people actually mean when they say "I used to use Rails, but now I use React"?Why back-end development is still a crucial part of building any web applicationWhat third-party services people are using to try and replace custom back-end codeWould you default to building a Rails back-end for a React side project, or is your instinct to try and use third-party services
135: Lessons Learned Building Tailwind UI
Topics include:What Tailwind UI is and why we decided to build itHow odd numbers can wreak havoc on a user interface, and how to avoid themCrafting the perfect form controlUnexpected benefits of working with CSS GridAbusing single column grids just to use gap, and why we desperately need gap support in FlexboxLinks:Tailwind UISupporting the show:I decided to stop taking sponsors for the s
134: Mark Dalgleish - You Should Be Using Layout Components
Topics include:What problems you run into when baking white space into components, and why your components should never contain any surrounding white space at allLayout challenges you run into due to the way the browser includes line-height in the size of text elementsThe trick Mark's team uses to remove surrounding white space from text elements, without removing the space between wrappi
133: Sam Selikoff - Building Production-Ready SPAs Fast with Mirage.js
TopicsWhat is Mirage and how does it work?What makes Mirage better than a dummy JSON server you run on another port?What makes Mirage better than running your actual API locally?Using Mirage for actual development, and not just for your test suiteHow Mirage's internal ORM works, and how it can help you mirror your API's behavior more quicklyManaging the risks of maintaining a complex stub
132: Caleb Porzio - Just Enough JavaScript with Alpine.js
Topics include:What is Alpine and what does it replace?How does Alpine compare to Vue?How does Alpine compare to Stimulus?“Why not just use vanilla JavaScript you dummy?”How Alpine works internallyPatterns for extracting reusable behaviours with AlpineThe Alpine roadmapSponsors:Tuple, try the best pair programming app out there for free for two weeksLinks:Alpine.js on GitHubThe template t
131: Ryan Singer - How Basecamp Builds Software
Topics include:Why "fixed time, variable scope" is so important for actually getting things doneIntegrating development and design into a single process instead of design first, develop laterWhat it means to "shape" work before deciding to work on itWhat it means to "bet" on a project, and why Basecamp would rather trash a project than extend the deadline by an extra weekTaking deadlines
130: David Khourshid - Building Better UI Components with State Machines
Topics include:What exactly is a finite state machine?Why trying to keep track of a component's status using boolean flags is leads to bugs and complex codeWhy it makes so much more sense to keep track of a component's state using some sort of labelHow simple it can actually be to implement UI component logic with a state machine and why you shouldn't think of it as complex or over-engine
129: Evan You - What's Coming in Vue.js 3.0
Topics include:What were the first feature/change ideas that got the wheels turning for Vue 3How Vue's underlying VNode data structure is changing and how that affects users who work directly with render functionsHow the h function works in Vue 3 and how it helps you write code that's more composableHow many breaking changes are just removing deprecations vs. hard breaks and how a compati
128: Alasdair Monk - Scaling CSS at Heroku with Utility Classes
Topics include:Why Heroku introduced BEM to try and solve their CSS issues and why it didn't workHow custom tooling and Ember's component system alleviated any maintainability concerns about littering the HTML with presentational classesWhy Heroku still uses some component classes like "btn" and "input" even though they could encapsulate those in an Ember componentWhy simply introducing a
127: Jonathan Reinink - Building Modern Monoliths with Inertia.js
Topics include:What Inertia.js is and what problem it solvesWhy Inertia is more like a protocol than a frameworkHow navigation works in InertiaHow form submissions work in InertiaHow Inertia automatically updates your assets for visitors when you update your codeHandling flash messages and validation errors workBuilding applications with persistent layoutsShowing placeholder screens with
126: James Long - Building Distributed Local-First JavaScript Applications
Topics include:How do you keep data synchronized between two different clients when all of the data is stored locally instead of in the cloud?Understanding conflict-free replicated data types and how they help when building distributed applicationsDiving deep into how messages are replayed across clients when network access becomes available to achieve consistent stateUsing a Merkle tree
125: Rob Walling - Choosing the Right Product Idea
Topics include:Brainstorming ideas vs. paying attention to your own problemsWhy it's smart to start with a product that might never make a million dollars a yearShould you avoid markets with competition?Why it's a good idea to build something for fewer peopleStrategies for figuring out how many people have the problem you're trying to solveWhy you should start marketing before you start b
124: Leslie Cohn-Wein & Rafael Conde - Designing the User Interface at Netlify
Topics include:Creating pixel-perfect mockups in advance vs. designing and implementing in tandemWorking with existing JS libraries for interactive UI features vs. hand-rolling a custom implementation from scratchHow design systems play into the design process at Netlify, and how mockups aren't meant to implemented pixel-for-pixelWhat tools Netlify uses to design new features and manage t
123: Ian Landsman - Marketing and Positioning a New Tailwind CSS Product
Topics include:Building website templates vs. a UI kitShould the product be positioned as a UI library or an educational resource?One-time purchase pricing vs. subscription pricing vs. some combination of the twoWhy marketing features can sometimes be better than marketing benefits"Dribbble but with code"Sponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB
122: Matt Biilmann - Architecting the Netlify Dashboard with React and Redux
Topics include:Walking through how a single screen in the app is rendered in step-by-step detailHow they separate container components and presentational components to make things easier to reason aboutHow the Redux store is organizedHow they handle caching data on the client and deciding when to bust the cacheHow the API is designedWhy they are sticking with REST instead of GraphqlHow th
121: Benedikt Deicke - Building Userlist.io
Topics include:The risks and technical challenges of building client-side API integrations and why Benedikt decided to focus on a server-side integration for launchBuilding Userlist with Ember instead of trendier tools like ReactHow the Ember app authenticates with the Rails APIStrategies for keeping email deliverability high for Userlist's customersHow Benedikt built Userlist's complex s
120: Taylor Otwell - Serverless Laravel with Vapor
Topics include:What is serverless?What AWS services Vapor manages and how they are billedUsing a single RDS instance with multiple databasesUnderstanding cold boots with Lambda and how to minimize the effect they have on your application's performancePerformance on VaporHow queues work with VaporTuning your queue concurrency based on your database connection limitStrategies for preventing
119: Ryan Toronto - Why a Back-End Developer Made the Switch to SPAs
Topics include:How modernizing a Flash app drove Ryan to start building SPAsHow products are really just user interfaces to the end user, and why that means it makes sense to make the UI the core of your codebaseWhy the backend will continue to be commoditized and application developers will be spending more and more of their time in the UIWhat makes something a web app instead of a websi
118: Aaron Gustafson - Semantic HTML: The Hard Parts
Topics include:Can you have more than one "h1" on page?How important is heading order?Why not everything that looks like a heading should necessarily be a headingWhy you may want to include invisible headings in some situationsWhat the document outline is and how your use of headings impacts itHow to make your heading levels dynamic to make your components more flexibleWhat a "sectioning
117: Mitchell Hamilton - Writing CSS-in-JS with Emotion
Topics include:What CSS-in-JS even isWhat Emotion does differently than other CSS-in-JS librariesHow to actually use Emotion to style your projectsHow the JSX pragma works and what it's forHow Emotion works under the hoodPerformanceAdding global styles to your projectStyle re-use and composition in EmotionUsing Emotion with server-side renderingSponsors:Cloudinary, sign up and get 300,000
116: Jerod Santo - Building the Changelog Platform with Elixir and Phoenix
Topics include:How pattern matching works in Elixir and why it's more powerful than method overloading in other languagesHow Elixir's pipe operator makes the transition from OO to functional programming more naturalWhy you don't need to be intimidated by unfamiliar features like GenServers to use Elixir for web app developmentNoticeable differences between working with Rails and Phoenix a
115: Jason Lengstorf - Gatsby for Skeptics
Topics include:How Gatsby is more than just a static site generatorHow you create pages with Gatsby and how it's more powerful than traditional static site generatorsThe benefits of having a unified data access layer for all of your contentHow to build dynamic applications with GatsbyWhy Gatsby is actually faster than static HTMLHow Gatsby makes performance best practices easyGatsby theme
114: Sebastian De Deyne - React for Vue Developers
Topics include:How Vue focuses on making things easy at the cost of a more complex API, while React focuses on keeping things simple at the cost of a steeper learning curveHow to translate Vue's computed properties to React using the useMemo hookHow to translate Vue's watchers to React using the useEffect hookHow to translate Vue's v-model to React using value props and event listenersHow
113: Justin Jackson - Growing Transistor to $10,000/month
Topics include:Why you need more than just a product, and what Justin brings to the table in his partnership with JonHow having an audience helped him get his first customers, even in a crowded marketWhy you should use every advantage you have to get people in the door, even though the only thing that will make customers stay is a great product with great service"People like us do things
112: Guillermo Rauch - Building Serverless Applications with Now
Topics include:How Now is trying to bring the CDN experience to your server-side codeHow the constraints of serverless can nudge you to build more robust solutionsHow to talk to a database in a stateless serverless environmentBest practices for deploying serverless code when you have a centralized data storeWhy routing should be handled at the Now configuration level instead of in applica
111: Jeffrey Way - Building the New Laracasts with Tailwind CSS
Topics include:How Jeffrey has written CSS historically, and what drew him to a utility-first approachIncrementally replacing Bulma with TailwindThe importance of solidifying your Tailwind configuration before beginning to implement a designThe new Tailwind color systemWhy choosing a color palette in advance is much better than using preprocessor functions like darken() or lighten()How du
110: Caleb Porzio - Embracing the Backend with Livewire
Topics include:Pain points you run into when you are working in a JS based UI instead of a server-rendered UIWhat Livewire is and where the inspiration came fromHow Livewire lets you build interactive user interfaces with server-side codeThe challenges of stateful long-running processes in PHP and using stateless AJAX requests as an alternativeWalking through a worked example of using Liv
109: The Road to Tailwind CSS v1.0
🎉You can now pre-order Full Stack Radio shirts and stickers! Learn more →Topics include:Semantic versioning and why there hasn't been a v1.0 release alreadyHow v1.0 will be encouraging people to leverage the default design systemBreaking changes and what the upgrade story will be likeWhat's coming after Tailwind CSS v1.0Sponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of s
108: Jonathan Reinink - Client-Side Rendering, Server-Side Routing
Topics include:Why the UI fidelity threshold for building an SPA feels so lowHow forcing yourself to prepare data for Vue helps avoid putting too much logic into your templatesWhy it's still worth building your app as a traditional server-based web app, even if you are using Vue for your entire UIPerformance and complexity benefits of being able to prepare data for the view in a controlle
107: Sam Selikoff - Pushing Complexity to the Client-Side
Topics include:Building an API without writing any controller codeThinking of your API like a database as much as possibleModeling everything on the server as a resource, including things like S3 upload signaturesUsing tools like Firebase to avoid writing an API entirelySponsors:Rollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift c
106: Sam Selikoff - Single Page Application Architecture
Topics include:Why you should think of SPAs as desktop apps instead of web appsStrategies for pushing complexity out of your backend and on to the clientBuilding optimistic UIsBest practices for storing and retrieving dataWhy you should design your SPAs with an "offline-first" mindsetSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth
105: Strength Training for Nerds
Topics include:What exercises you should focus on and whyHow to develop a system that will force you to make progressThe importance of keeping a training journalWhy full-body workouts are better than training a specific muscle group each dayThe importance of mobility for both training and your work lifeWhy building strength is so important as you ageWhy you shouldn't trust trainers trying
104: Jonathan Reinink - Pushing More Work to the Database
Topics include:Issues you run into when you do too much work in code instead of in the databaseWhy memory usage is just as important as query countHow being smarter with your database usage can let you avoid hard problems like cache invalidationDenormalizing computable data to make it queryableUsing "where not exists" strategically to improve query performanceWhy the solution to n+1 probl
103: Steve Schoger - Design Q&A + Refactoring UI Details
Questions include:What's your process for getting started on a new design?How do you make your designs feel original?How do you choose fonts for a new project?How do you make complex tables look good, and how do you make them work on mobile?What's the best way to style multiple secondary actions on a page?Refactoring UI topics include:Structuring the book to make it easy to read in a shor
102: Paul Jarvis - Staying Small
Topics include:Why "success" shouldn't mean the same thing to everyoneHow to stay small without doing all the work you don't want to do yourselfWhy it's important to define what "enough" is for your business instead of always feeling the need to do better than you did last yearQuestions to ask yourself to figure out what "success" would be for youHow knowing your "enough" can help you bui
101: Ben Orenstein - How to Build an App in a Week
Topics include:Why deadlines are criticalUsing manual processes to avoid building features entirelyHow launching a stripped down version of your idea can help you build the right thingRecognizing when you don't need to solve a problem yetWhy you shouldn't design your entire UI up frontHow evolutionary design applies to both code and interface designWhy you should always finish a feature b
100: Sébastien Chopin - Building Universal Vue.js Apps with Nuxt.js
Topics include:The history behind Nuxt.jsHow Nuxt.js uses special Page components and file-based routing instead of using a traditional routerCreating dynamic page-based routes without a custom serverHow the asyncData lifecycle hook worksHow server-side rendering works in Nuxt.jsHow Nuxt.js uses intelligent code-splitting to improve performanceHow to use the fetch method to dispatch Vuex
99: Tim Neutkens - Building React Apps with Next.js
Topics include:How Next.js is different than using create-react-appHow page-based routing works in Next.js vs. a traditional routerThe mechanics behind how components are server-side rendered and picked up by React on the clientWhat it really means to server-render a React app and how it's different from a traditional server-rendered web appHow to use "getInitialProps" to tell Next.js how
98: Ryan Chenkie - Securing Single Page Applications
Topics include:What JSON Web Tokens are and how to use them to authenticate usersStrategies for invalidating stateless API tokensUsing cookie and session authenticationUsing authentication-as-a-service solutions like Auth0Proxying requests to your API to simplify CORS issuesProtecting against XSS attacksSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB o
97: Ryan Florence - Building Accessible UI Components
Topics include:How modern JS frameworks have made the web less accessibleHow Reach UI is making it easier for people to build accessible components without sacrificing customizabilityThe importance of using the correct markupHow focus trapping worksAdding keyboard navigation to components in a way that makes sense for screenreader usersThe challenges of building an accessibility-focused U
96: James Clear - Designing Your Environment to Shape Your Behavior
Topics include:Why goals aren't useful on their ownThe four rules that guide human behaviorUsing environment design to encourage the habits you want to adoptBuilding habits of avoidanceWhy being productive is really about decision makingSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeNetlify, incredibly powerful static site
95: Frank de Jonge - Implementing Event Sourcing
Topics include:How to fetch and reconstitute an aggregate from its eventsUsing generators to make it easy to transform event streamsWhat it looks like to apply an event to an aggregateHow to create events and what they look likeImplementing a message repository for fetching events from storageHow to raise events from inside your aggregatesHow to persist aggregates at the end of a requestW
94: Ben Orenstein - The Art of Pairing
Topics include:The benefits of pairing with someone more experienced than youThe benefits of pairing with someone less experienced than youHow pairing helps you build things fasterWhy pairing often removes the need for code reviewHow to get started with pairing if you've never done it beforeSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly ban
93: Justin Jackson - Who You Want to Help > What You Want to Build
Topics include:Why you should choose a market before getting too attached to the type of product you want to createWhy it can make sense to create products in different categories if they are for the same peopleWhy a CSS framework and a TDD course have more in common than it soundsWhy you might be happier having a job than running a business if you want to spend your time doing a specific
92: Derrick Reimer - Building an SPA with Elm, Phoenix and GraphQL
Topics include:Why Derrick chose to build Level as an SPAChoosing Elm over React or VueHow Elm is sort of like a language and framework combinedMoving to Phoenix from RailsWhy getting abstractions right feels easier in a functional languageHow "contexts" help you organize your Phoenix codeThe benefits of GraphQL over RESTWhat it looks like to implement GraphQL on the serverAvoiding n+1 qu
91: Derrick Reimer - Designing a Calmer Team Communication Platform
Sponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeRollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 daysLinks:LevelThe War on Developer Productivity, the Level manifestoLevel live-coding screencasts on YouTubeGhost, open-source publishing platformDiscourse, open-source discussion p
90: David Hemphill - Using JSX with Vue.js
Topics include:What even is JSX, really?Why JSX is not a templating a languageHow render functions workAdvantages of JSX over templatesHow to translate template features like v-if to JSXHow event listeners work with JSXJSX gotchas to watch out forSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeRollbar, sign up at https://ro
89: Sam Selikoff - Choosing Ember.js in 2018
Topics include:Why has Ember stuck around when other frameworks from the same era haven't?What do you get when you choose Ember that you don't get with other frameworks?How does Ember's UI layer compare to React/Vue?What choices does Ember make differently than frameworks like React and Vue?How does Ember do state management?Why Ember is a great choice if you value stabilitySponsors:Rollb
88: Blake Newman - Vue.js State Management with Vuex
Topics include:What is Vuex and where did it come from?The benefits of centralizing all of your application's state into one placeWhat sort of state belongs in Vuex and what state should stay local to a componentWhat all the Vuex terminology means, like actions, mutations, getters, etc.How you initially populate a Vuex storeStrategies for organizing all of the state in a storeCommon mista
87: Chris Fritz - Vue.js Anti-Patterns (and How to Avoid Them)
Topics include:Why global state is better than an event busWhy and how to avoid using this.$parentCustom events vs. callback propsWhen to use watchers and when you don't need toWhy you should prefer computed properties over methodsInline templates vs. scoped slotsUsing components to share code instead of mixins or directivesSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio t
86: Jonathan Reinink - Rebuilding a SaaS with Vue.js and Tailwind CSS
Topics include:Wrapping non-Vue libraries as Vue components to maintain a consistent paradigmUsing Popper.js with Vue to build dropdowns and tooltipsUsing portals to build better modal componentsPatterns for making it easier to reuse components throughout an applicationWhich Tailwind CSS component classes Jonathan chose to extract (and which ones he didn't)How Jonathan chose to customize
85: Frank de Jonge - Event Sourcing for Beginners
Topics include:What does "event sourcing" even mean?What do terms like "aggregate" and "projection" mean in the context of event sourcing?What are the benefits of modeling something with event sourcing vs. a traditional state-based approach?How events are usually storedWhy and how you might build multiple projections from a single event streamHow events in event sourcing differ from the s
84: Edd Yerburgh - Testing Vue.js Components
Topics include:Challenges with testing Vue components prior to vue-test-utilsHow vue-test-utils works and what it looks like to test a componentChoosing a test runnerCommon mistakes people make when testing their componentsMocking and stubbing external dependenciesCombining unit testing with snapshot testingSponsors:Codeship, check out how they performed in Forrester's latest Continuous I
83: DHH - Stimulus in Practice + On Writing Software Well
Topics include:What JavaScript looked like at Basecamp before StimulusWhy Basecamp chose to create a new framework instead of using React, Angular, or VueHow Basecamp uses server-rendered partials instead client-side templatesWhy David decided to start "On Writing Software Well"Evaluating patterns in practice and choosing between conflicting approachesUsing concerns/mixins to organize cla
82: Sarah Drasner - Animating the Web with CSS and JavaScript
Topics include:Using animation to make interfaces easier to useThe difference between animations and transitionsWhen to use CSS animations vs. JavaScript animationsWhich CSS properties are safe to animateHow to use techniques like FLIP to make sure your animations are performantRecommended libraries for building complex animationsStrategies for keeping animation code maintainableSponsors:
81: Evan You - Advanced Vue Component Design
Topics include:What is a "higher order component"?How do you replicate the render prop pattern from React with Vue?Using scoped slots to build components with no UIUsing render functions without using JSXHow Vue's built-in components like `` work under the hoodSponsors:Codeship, check out how they performed in Forrester's latest Continuous Integration Tools reportRollbar, sign up at https
80: Tom Schlick - Building Multitenant Applications
Topics include:What makes an application "multitenant" really?Choosing between a shared database or multi-database setupApproaches for identifying the current tenantPerformance considerationsHow multitenancy impacts how you integrate with external servicesSponsors:Codeship, check out how they performed in Forrester's latest Continuous Integration Tools reportRollbar, sign up at https://ro
79: Kent C. Dodds - Building Reusable React Components with Render Props
Kent gives a behind-the-scenes look at how the library uses the render prop pattern to allow maximum customizability without complex configuration.Sponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 daysCodeship, check out how they performed in Forrester's latest Continuous Integration Tools reportLinks:downshift on GitHub"Introducing do
78: Ben Orenstein - Our All-Time Favorite Refactorings
Sponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 daysCodeship, check out how they performed in Forrester's latest Continuous Integration Tools reportLinks:Refactoring Rails, Ben's refactoring courseThe 30 Day Code Quality Challenge, Ben's free 30-day code quality courseRefactoring from Good to Great, Ben's popular refactoring talkDeco
77: Tailwind CSS Q&A and the Road to 1.0
Topics include:Why Tailwind doesn't include buttons or formsIs Tailwind for front-end developers or back-end developers?Best practices around extracting component classesUsing Tailwind with existing CSS or on top of other frameworksOptimizing Tailwind's generated file sizeNew features planned for upcoming Tailwind releasesSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to
76: Tailwind CSS vs. the World
Sponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 daysCodeship, check out how they performed in Forrester's latest Continuous Integration Tools reportLinks:Tailwind CSS HomepageTailwind CSS GitHub repositoryTailwind CSS discussion forum@tailwindcss on Twitter"CSS Utility Classes and Separation of Concerns", Adam's post on moving from "
75: Diana Mounter - Design Systems and Utility Classes at GitHub
Sponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 daysLinks:Diana's personal websitePrimer, GitHub's design systemPrimer modules on GitHub"Introducing Design Systems into Chaos", Diana's recent talk on her work on design systems at GitHubPercy, a visual regression testing toolPrimer CSS on TwitterGitHub Design on Twitter
74: Steve Schoger - Tactical Design Advice for Developers
Topics include:How to pick great fontsChoosing a color scheme for your projectDesigning in greyscaleRecreating existing interfaces from scratchRecommended design toolsWhat you should design first on a new pageStrategies for making things look professional without graphic design skillsSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 da
Recommended

19 Observations on mining and refining of critical minerals

1A

1Dime Radio

오늘 미국은

$100M Offers by Alex Hormozi, Book Summary, Podcast, English

0xResearch

10000 MINUTES

1000 Things You Should Know

1000x

1001 Classic Short Stories & Tales

1001raah | هزار و یک راه

1001 Sherlock Holmes Stories & The Best of Sir Arthur Conan Doyle