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.
In this episode, Adam talks to Gary Bernhardt about building Execute Program, why he chose to build it as a full-stack TypeScript application, and the implications using TypeScript has on what you need to test.
In this episode, Adam talks to Jason Fried about growing the Tailwind team and how to best use Basecamp to keep his particular company organized. He also walks through tons of real examples from their recent work on HEY, sharing lots of behind-the-scenes stuff about how Basecamp use Basecamp themselves.
In this episode, Adam is joined by Michael Chan to talk about how people who identify as React developers are building real web applications, and why it seems like nobody is talking about databases or background jobs anymore.
In this episode, Adam is joined by Sam Selikoff to talk about some of the interesting technical challenges he faced building Tailwind UI, and how working on the project has influenced how he will build layouts in the future.
In this episode, Adam talks to Mark Dalgleish about common mistakes people make in their approach to constructing layouts, and how dedicated layout components can make your component system much easier to work with.
In this episode, Adam talks to Jonathan Reinink about Inertia.js, a new framework he recently released that lets you build single page applications with Vue, React, or Svelte, without having to give up the productivity benefits of traditional server-side development workflows using tools like Laravel or Rails.
In this episode, Adam talks to Ryan Toronto about his journey from being a full stack Rails developer to focusing on single page applications, and why application developers should be betting on UI-focused frameworks like Ember, React, and Vue.
In this episode, Adam talks to Sebastian De Deyne about learning React from the perspective of a Vue developer, and how to translate all of the Vue features you're already comfortable with to React code.
In this episode, Adam talks to Jonathan Reinink about a new approach he has been using to build Laravel and Vue.js apps that lets him match the UI fidelity of an SPA, without abandoning server-side routing or data fetching.
In this episode, Adam continues his discussion with Sam Selikoff about building single page applications, this time focusing on strategies for keeping your API layer as simple as possible, so all of your complexity lives in your client-side codebase instead of being spread across both.
In this episode Adam talks to Ryan Chenkie of Angularcasts about authentication strategies and security best practices when building client-side applications with frameworks like React, Vue, Angular, or Ember.
In this episode, Adam and Justin Jackson have a candid conversation about a life-changing realization Adam recently had about what he does for a living. They talk about why it's important to define your business by the people it serves instead of the product you make, and how to stop stressing yourself out trying to come up with the perfect SaaS app idea.
In this episode, Adam talks to Derrick Reimer about the product design decisions behind Level, a new team communication platform Derrick is building. They also talk about Derrick's decision to open-source the entire codebase, despite the fact that he's building a real business around it.
In this episode, Adam talks to Frank de Jonge, author of the EventSauce library, about what event sourcing is, how it works, and what it looks like to use it to model some practical real-world problems.
In this episode, Adam talks to Sarah Drasner about using animations and transitions to create more intuitive user interfaces, as well as technical tips, tricks and best practices for implementing them well.
In this episode, Adam talks to Evan You the creator of Vue.js about advanced component design patterns, and using features like scoped slots and render functions to build components that are much more than just UI widgets.
In this episode, Adam talks to Kent C. Dodds about building "downshift", a React autocomplete component he designed for experiences he needed to build at PayPal. Kent gives a behind-the-scenes look at how the library uses the render prop pattern to allow maximum customizability without complex configuration.
In this episode, Adam is joined by Jonathan Reinink to discuss Tailwind CSS, a new utility-first CSS framework that they just released. They talk about what Tailwind is, how it works, and what makes it different than component-based frameworks like Bootstrap or other utility frameworks like Tachyons.
In this episode, Adam talks to Diana Mounter of GitHub to talk about using design systems to tame legacy CSS, and how GitHub is using utility classes to make it easier to build more consistent, maintainable user interfaces.
In this episode, Adam talks to Jonathan Reinink about what it's like to build a Laravel application using Turbolinks, how it plays with front-end frameworks like Vue.js, and how it's helping him quickly develop web, iOS, and Android apps for his SaaS business all by himself.
They also discuss the benefits of using a Turbolinks-style approach for small teams, and how Turbolinks on mobile compares to other popular tools like Ionic.
In this episode, Adam welcomes back Jonathan Reinink to talk about implementing designs with a utility-first approach to CSS.
They talk about the problems this approach has solved for them, the surprising workflow benefits, and some tips and tricks for using this approach well.
In this episode, David shares some lessons learned from the PushSilver Infinite launch: what went well, what could've been improved, and what he would double down on next time.
Adam talks about some of the UI design challenges he and Steve have been trying to solve, and shares some of the creative solutions they came up with.
In this episode, David talks about getting ready for the launch of PushSilver Infinite, and the unexpected engineering effort needed to make the most of a marketing initiative.
Adam gives an update on gracefully handling errors in the KiteTail checkout process, launching Zttp as an open-source package, and how he used Lumen to power the Zttp integration test suite.
In this episode, David shares the details behind the pricing changes he's decided on for PushSilver and talks about some of the new features and marketing strategies he's working on for the upcoming launch.
Adam shares the details behind his decision to bring on a co-founder for KiteTail, talks the collaboration process when working on an app with somebody else, and give an update on where he's at with getting KiteTail integrated into the Test-Driven Laravel course app.
Adam and David are joined by Ian Landsman to talk about his latest project Thermostat.io and discuss some pricing ideas for PushSilver and KiteTail.
- Thermostat.io and NPS surveys
- Charging more vs. charging less
- Finding a niche for PushSilver and how to appeal to that niche
- One-time purchase lifetime plans for SaaS
- Percentage-based vs. tiered pricing
In this episode, Adam and David recap their MicroConf 2017 experiences, give some product updates, and chat about topics like:
- Dogfooding Cron Dog in PushSilver
- Dealing with complex validation
- Why we hate auto-saving UIs
- Validation issues when supporting "draft" models
- Expanding the scope of KiteTail
- Different ways to handle client-side image preview
- Building a Cron Dog SDK
In this episode, David talks about adding timezone support to Crondog, and Adam wrestles with some decisions about dealing with failed webhooks in KiteTail.
We also talk a lot about different strategies for securing webhooks, and what we're looking forward to at MicroConf.
Adam welcomes David Hemphill back to the show, but this time as a co-host!
David introduces Crondog, the new product he's working on to help developers manage dynamic recurring tasks in their applications.
Adam introduces KiteTail, an app that let's you create webhook-driven hosted checkout pages; something he wishes he'd had when he launched his course.
From here on out, Full Stack Radio will follow David and Adam's journey building these new products; discussing interesting technical, design, and business challenges they face along the way.
In this episode, Adam talks to Matt Wynne about Behavior Driven Development with Cucumber.
- What exactly is BDD?
- Is BDD a technical or non-technical practice?
- How do you get started with BDD?
- How do you keep the number of system tests low to keep your test suite fast?
- What's your strategy for dealing with external services in acceptance tests?
- What are the advantages of using Cucumber even as a solo developer working on a side project?
In this episode, Adam talks to Evan You about what's coming in Vue.js 2.0.
- The motivation for rewriting Vue.js from scratch
- What is a virtual DOM and what are the benefits?
- How does Vue.js 2.0 stack up performance wise? (spoiler alert, it's _fast_)
- When should you use templates vs. a render function?
- Why two-way props have been deprecated and what you should do instead
- Best practices for dealing with custom component events
- The 1.0 to 2.0 upgrade path
- Building native mobile applications with Vue.js and Weex