

Full Stack Radio
Adam Wathan
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
Mentioned books

Apr 24, 2019 • 1h 5min
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 like this" vs "scratching your own itch"How their affiliate program has been working surprisingly well for them, and how affiliate programs compare to traditional advertisingWhat Justin's day looks like working on Transistor as the marketing focused side of the partnershipHow Justin and Jon are paying themselves, inspired by Profit FirstSponsors:Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeDigitalOcean, get your free $50 credit at do.co/fullstackLinks:Transistor, Justin's podcast hosting businessBuild your SaaS, Justin's podcast on building Transistor with JonThe Good News Podcast, Cards Against Humanity's podcast hosted on TransistorThe Transistor blogTransistor's revenue metricsRewardful, the affiliate SaaS Justin usesProfit First

Apr 10, 2019 • 1h 9min
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 application codeHow Now functions are different from microservices, and how you share code between themHow Now bundles your project using buildersCreating a monolithic project with Now that uses different programming languages for each endpointHow the upcoming "now dev" feature will enable you to simulate a serverless environment locallyA behind-the-scenes look at the Now dashboard, how it's built, and the third-party services that power itSponsors:DigitalOcean, get your free $50 credit at do.co/fullstackCloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeLinks:ZEITNext.jsNow.shNow builders on GitHubNow Monorepo exampleWordpress running on Now on nowThird-party services for serverless projects: Cosmos DBScaleGridComposeDynamoDBFirebaseAmazon AuroraAuth0

Mar 28, 2019 • 1h 25min
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 duplicating your markup is often a better solution than trying to write incredibly crafty responsive CSSHow Tailwind helps with performance by letting you keep your CSS cachedHow to use CSS variables to create multiple themes for the same Tailwind siteSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveImageCon, Cloudinary's upcoming conference for any developer who works with rich media. Get 15% off using the code FULLSTACKRADIO15.Links:LaracastsTailwind CSSGroup Hover in TailwindMobile Twitter, responsive app without media queriesTheming Tailwind demo on GitHubEasy Tailwind Themes Using CSS Variables, free lesson on LaracastsLaravel, Vue and SPAs, Laracasts series on building an SPA with Tailwind CSSLaraCats.com 😸

Mar 14, 2019 • 59min
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 Livewire to build an interactive dropdownWhat's next for LivewireSponsors:ImageCon, Cloudinary's upcoming conference for any developer who works with rich media. Get 15% off using the code FULLSTACKRADIO15.Rollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveLinks:Full Stack Radio T-Shirt + Sticker Pack Pre-ordersCaleb's blog, loaded with great Livewire contentNo Plans to Merge, Caleb's podcastSharing Data in a Laravel/Vue Application on the Zaengle blogEmbrace the Backend, Caleb's talk at Laracon 2018Phoenix LiveView unveiling at ElixirConf 2018morphdomSign up for Livewire updates

4 snips
Feb 27, 2019 • 1h 43min
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 storage and 20GB of monthly bandwidth for freeRollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveLinks:Full Stack Radio T-Shirt + Sticker Pack Pre-ordersTailwind CSSAdam's Work Journal, where writes about his progress on v1.0The v1.0 To-Do ListPR explaining the new config format

Feb 14, 2019 • 1h 10min
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 controller instead of having to build an APIStrategies for dealing with things like accessing routes, checking authorization rules, and other things you'd normally do in a Blade templateSwitching from a template-inheritance mindset to a component mindsetSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveCloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeLinks:LaravelVue.jsServer-side apps with client-side rendering, from Jonathan's blogExample projectZiggy, package for accessing your Laravel routes on the client

Jan 30, 2019 • 50min
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 card for Open CollectiveCloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeLinks:EmberMap, Sam's Ember.js training siteJSON:API, the API spec Sam uses to build his SPA backendsJSONAPI::Resources, the Rails gem for declaratively building a JSON:API compliant APIFirebaseVuexApollo GraphQL

Jan 16, 2019 • 55min
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 for freeRollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveLinks:EmberMap, Sam's Ember.js training siteCruddy by Design, Adam's talk on modeling with resourcesProgressive Enhacement is Dead, Long Live Progressive Enhancement, a talk from Tom Dale that talks about building offline-first web applicationsEmber DataJSON:APIEmber-Orbit

Jan 3, 2019 • 1h 3min
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 to sell complex exercise programsWhy you probably shouldn't be running for exerciseWhat equipment you need to get startedSponsors:Rollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveCloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for freeLinks:Starting Strength by Mark Rippetoe5/3/1 by Jim WendlerDeskbound by Kelly StarrettAtomic Habits by James ClearStrong app for iOS"Why You Should Not Be Running" by Mark RippetoeThe MobilityWOD BattleStarRogue FitnessAdam's last powerlifting competition on YouTubeHabits for Hackers, Ben's latest course

Dec 19, 2018 • 1h 2min
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 problems isn't always as simple as eager-loadingHow subqueries work and how you can use them to avoid memory problems when eager-loadingSponsors:Oh Dear!, sign up with the coupon code "FULLSTACKRADIO" to get 50% off your first monthRollbar, sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open CollectiveLinks:Refactoring UI"Dynamic relationships in Laravel using subqueries" on Jonathan's blogSource code for Jonathan's Laracon Online talkThe benefits of NOT EXISTS on StackOverflowAdvanced Eloquent, Jonathan's Laravel package


