Topics include: Walking through how a single screen in the app is rendered in step-by-step detail How they separate container components and presentational components to make things easier to reason about How the Redux store is organized How they handle caching data on the client and deciding when to bust the cache How the API is designed Why they are sticking with REST instead of Graphql How they handle authentication in their app Sponsors: DigitalOcean , get your free $50 credit at do.co/fulls...
Aug 28, 2019•56 min•Ep 122•Transcript available on Metacast 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 launch Building Userlist with Ember instead of trendier tools like React How the Ember app authenticates with the Rails API Strategies for keeping email deliverability high for Userlist's customers How Benedikt built Userlist's complex segmentation engine by creating a custom AST structure and compiling it to SQL How the automation and ema...
Aug 14, 2019•51 min•Ep 121•Transcript available on Metacast Topics include: What is serverless? What AWS services Vapor manages and how they are billed Using a single RDS instance with multiple databases Understanding cold boots with Lambda and how to minimize the effect they have on your application's performance Performance on Vapor How queues work with Vapor Tuning your queue concurrency based on your database connection limit Strategies for preventing your web instances and queue instances from competing for resources How scheduled tasks work with Va...
Jul 31, 2019•1 hr 2 min•Ep 120•Transcript available on Metacast Topics include: How modernizing a Flash app drove Ryan to start building SPAs How 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 codebase Why the backend will continue to be commoditized and application developers will be spending more and more of their time in the UI What makes something a web app instead of a website, and why almost everything is actually an app Why application developers still need to write server-si...
Jul 17, 2019•59 min•Ep 119•Transcript available on Metacast 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 heading Why you may want to include invisible headings in some situations What the document outline is and how your use of headings impacts it How to make your heading levels dynamic to make your components more flexible What a "sectioning context" is Can you have multiple "article" elements on one page? What even is an "article" anyways? H...
Jul 03, 2019•1 hr 10 min•Ep 118•Transcript available on Metacast Topics include: What CSS-in-JS even is What Emotion does differently than other CSS-in-JS libraries How to actually use Emotion to style your projects How the JSX pragma works and what it's for How Emotion works under the hood Performance Adding global styles to your project Style re-use and composition in Emotion Using Emotion with server-side rendering Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free DigitalOcean , get your fr...
Jun 20, 2019•52 min•Ep 117•Transcript available on Metacast Topics include: How pattern matching works in Elixir and why it's more powerful than method overloading in other languages How Elixir's pipe operator makes the transition from OO to functional programming more natural Why you don't need to be intimidated by unfamiliar features like GenServers to use Elixir for web app development Noticeable differences between working with Rails and Phoenix and what it was like to transition How the Phoenix ORM makes n+1 queries impossible Why background tasks a...
Jun 05, 2019•1 hr 1 min•Ep 116•Transcript available on Metacast Topics include: How Gatsby is more than just a static site generator How you create pages with Gatsby and how it's more powerful than traditional static site generators The benefits of having a unified data access layer for all of your content How to build dynamic applications with Gatsby Why Gatsby is actually faster than static HTML How Gatsby makes performance best practices easy Gatsby themes and why they are more exciting than traditional CMS themes Sponsors: Cloudinary , sign up and get 30...
May 22, 2019•55 min•Ep 115•Transcript available on Metacast 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 curve How to translate Vue's computed properties to React using the useMemo hook How to translate Vue's watchers to React using the useEffect hook How to translate Vue's v-model to React using value props and event listeners How to translate Vue's events to React using callback props How to translate Vue's slots to React by passin...
May 08, 2019•1 hr 4 min•Ep 114•Transcript available on Metacast Topics include: Why you need more than just a product, and what Justin brings to the table in his partnership with Jon How having an audience helped him get his first customers, even in a crowded market Why 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 f...
Apr 24, 2019•1 hr 5 min•Ep 113•Transcript available on Metacast Topics include: How Now is trying to bring the CDN experience to your server-side code How the constraints of serverless can nudge you to build more robust solutions How to talk to a database in a stateless serverless environment Best practices for deploying serverless code when you have a centralized data store Why routing should be handled at the Now configuration level instead of in application code How Now functions are different from microservices, and how you share code between them How No...
Apr 10, 2019•1 hr 9 min•Ep 112•Transcript available on Metacast Topics include: How Jeffrey has written CSS historically, and what drew him to a utility-first approach Incrementally replacing Bulma with Tailwind The importance of solidifying your Tailwind configuration before beginning to implement a design The new Tailwind color system Why 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 CSS ...
Mar 28, 2019•1 hr 25 min•Ep 111•Transcript available on Metacast Topics include: Pain points you run into when you are working in a JS based UI instead of a server-rendered UI What Livewire is and where the inspiration came from How Livewire lets you build interactive user interfaces with server-side code The challenges of stateful long-running processes in PHP and using stateless AJAX requests as an alternative Walking through a worked example of using Livewire to build an interactive dropdown What's next for Livewire Sponsors: ImageCon , Cloudinary's upcomi...
Mar 14, 2019•59 min•Ep 110•Transcript available on Metacast 🎉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 already How v1.0 will be encouraging people to leverage the default design system Breaking changes and what the upgrade story will be like What's coming after Tailwind CSS v1.0 Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar , sign up at https://rollbar.com/fullstackradi...
Feb 27, 2019•2 hr 43 min•Ep 109•Transcript available on Metacast Topics include: Why the UI fidelity threshold for building an SPA feels so low How forcing yourself to prepare data for Vue helps avoid putting too much logic into your templates Why it's still worth building your app as a traditional server-based web app, even if you are using Vue for your entire UI Performance and complexity benefits of being able to prepare data for the view in a controller instead of having to build an API Strategies for dealing with things like accessing routes, checking au...
Feb 14, 2019•1 hr 10 min•Ep 108•Transcript available on Metacast Topics include: Building an API without writing any controller code Thinking of your API like a database as much as possible Modeling everything on the server as a resource, including things like S3 upload signatures Using tools like Firebase to avoid writing an API entirely Sponsors: Rollbar , sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to receive a $100 gift card for Open Collective Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB o...
Jan 30, 2019•50 min•Ep 107•Transcript available on Metacast Topics include: Why you should think of SPAs as desktop apps instead of web apps Strategies for pushing complexity out of your backend and on to the client Building optimistic UIs Best practices for storing and retrieving data Why you should design your SPAs with an "offline-first" mindset Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar , sign up at https://rollbar.com/fullstackradio and install Rollbar in your app to r...
Jan 16, 2019•55 min•Ep 106•Transcript available on Metacast Topics include: What exercises you should focus on and why How to develop a system that will force you to make progress The importance of keeping a training journal Why full-body workouts are better than training a specific muscle group each day The importance of mobility for both training and your work life Why building strength is so important as you age Why you shouldn't trust trainers trying to sell complex exercise programs Why you probably shouldn't be running for exercise What equipment y...
Jan 03, 2019•1 hr 3 min•Ep 105•Transcript available on Metacast Topics include: Issues you run into when you do too much work in code instead of in the database Why memory usage is just as important as query count How being smarter with your database usage can let you avoid hard problems like cache invalidation Denormalizing computable data to make it queryable Using "where not exists" strategically to improve query performance Why the solution to n+1 problems isn't always as simple as eager-loading How subqueries work and how you can use them to avoid memor...
Dec 19, 2018•1 hr 2 min•Ep 104•Transcript available on Metacast 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 short amount of time An overview of the sections and chapters in the book What's covered in the screencast...
Dec 05, 2018•1 hr 5 min•Ep 103•Transcript available on Metacast Topics include: Why "success" shouldn't mean the same thing to everyone How to stay small without doing all the work you don't want to do yourself Why it's important to define what "enough" is for your business instead of always feeling the need to do better than you did last year Questions to ask yourself to figure out what "success" would be for you How knowing your "enough" can help you build better products for the people you want to serve Why you should ignore the people who don't like what...
Nov 21, 2018•1 hr 6 min•Ep 102•Transcript available on Metacast Topics include: Why deadlines are critical Using manual processes to avoid building features entirely How launching a stripped down version of your idea can help you build the right thing Recognizing when you don't need to solve a problem yet Why you shouldn't design your entire UI up front How evolutionary design applies to both code and interface design Why you should always finish a feature before starting the next one Applying this approach to Ben's current project Tuple Sponsors: Rollbar , ...
Nov 07, 2018•55 min•Ep 101•Transcript available on Metacast Topics include: The history behind Nuxt.js How Nuxt.js uses special Page components and file-based routing instead of using a traditional router Creating dynamic page-based routes without a custom server How the asyncData lifecycle hook works How server-side rendering works in Nuxt.js How Nuxt.js uses intelligent code-splitting to improve performance How to use the fetch method to dispatch Vuex actions Using the head method to populate head elements on a page How layouts and middleware work Opti...
Oct 24, 2018•49 min•Ep 100•Transcript available on Metacast Topics include: How Next.js is different than using create-react-app How page-based routing works in Next.js vs. a traditional router The mechanics behind how components are server-side rendered and picked up by React on the client What it really means to server-render a React app and how it's different from a traditional server-rendered web app How to use "getInitialProps" to tell Next.js how to render a page on the server How dynamic routing works using page-based routing What's new in Next.js...
Oct 10, 2018•52 min•Ep 99•Transcript available on Metacast Topics include: What JSON Web Tokens are and how to use them to authenticate users Strategies for invalidating stateless API tokens Using cookie and session authentication Using authentication-as-a-service solutions like Auth0 Proxying requests to your API to simplify CORS issues Protecting against XSS attacks Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Rollbar , sign up at https://rollbar.com/fullstackradio to try their Bo...
Sep 26, 2018•58 min•Ep 98•Transcript available on Metacast Topics include: How modern JS frameworks have made the web less accessible How Reach UI is making it easier for people to build accessible components without sacrificing customizability The importance of using the correct markup How focus trapping works Adding keyboard navigation to components in a way that makes sense for screenreader users The challenges of building an accessibility-focused UI library Sponsors: Rollbar , sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan...
Sep 12, 2018•1 hr•Ep 97•Transcript available on Metacast Topics include: Why goals aren't useful on their own The four rules that guide human behavior Using environment design to encourage the habits you want to adopt Building habits of avoidance Why being productive is really about decision making Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Netlify , incredibly powerful static site hosting for free Links: JamesClear.com Pre-order Atomic Habits , James' upcoming book James' Newsl...
Aug 29, 2018•1 hr 1 min•Ep 96•Transcript available on Metacast Topics include: How to fetch and reconstitute an aggregate from its events Using generators to make it easy to transform event streams What it looks like to apply an event to an aggregate How to create events and what they look like Implementing a message repository for fetching events from storage How to raise events from inside your aggregates How to persist aggregates at the end of a request What it looks like to insert new events into storage Dispatching events to consumers to produce side e...
Aug 15, 2018•1 hr 29 min•Ep 95•Transcript available on Metacast Topics include: The benefits of pairing with someone more experienced than you The benefits of pairing with someone less experienced than you How pairing helps you build things faster Why pairing often removes the need for code review How to get started with pairing if you've never done it before Sponsors: Cloudinary , sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free Netlify , incredibly powerful static site hosting for free Links: Tuple , the remote ...
Aug 01, 2018•53 min•Ep 94•Transcript available on Metacast Topics include: Why you should choose a market before getting too attached to the type of product you want to create Why it can make sense to create products in different categories if they are for the same people Why a CSS framework and a TDD course have more in common than it sounds Why you might be happier having a job than running a business if you want to spend your time doing a specific type of work What you should be doing instead of racking your brain for app ideas Sponsors: Netlify , in...
Jul 18, 2018•1 hr 14 min•Ep 93•Transcript available on Metacast