111: Jeffrey Way - Building the New Laracasts with Tailwind CSS
Episode
84 min
Read time
2 min
Topics
Startups, Leadership, Design & UX
AI-Generated Summary
Key Takeaways
- ✓CSS Evolution Path: Developers typically progress from ID-based CSS that mirrors HTML structure, to BEM syntax for reduced specificity issues, finally gravitating toward utility-first approaches that eliminate constant naming decisions and improve development flow by allowing direct styling without abstraction overhead.
- ✓Component Extraction Strategy: Extract CSS components only when duplication causes genuine pain, not preemptively. Laracasts uses fewer than ten custom CSS components total, with most being core building blocks like cards and buttons that appear throughout the site with complex hover animations requiring traditional CSS.
- ✓Responsive Design Workflow: When mobile and desktop layouts differ significantly beyond simple flexbox toggles, duplicate the HTML and toggle visibility with hidden/block classes rather than creating complex responsive utility chains. This provides maximum control and cleaner code despite shipping additional markup.
- ✓Color System Management: Define color palettes in Tailwind config immediately at project start, not incrementally. Without upfront planning, developers face situations where designs require colors between existing shades, creating naming conflicts like needing colors between "red-dark" and "red-darker" that break systematic organization.
- ✓Performance Benefits: Utility-first CSS eliminates cache-busting on most updates since changes occur in HTML files, not CSS. Combined with PurgeCSS reducing file sizes by 60% or more, and Brotli compression making Tailwind smaller than Bootstrap despite larger uncompressed sizes, production performance improves dramatically.
What It Covers
Jeffrey Way discusses rebuilding Laracasts.com using Tailwind CSS, covering the transition from component-based CSS frameworks like Bulma, utility-first workflows, responsive design challenges, performance optimization with PurgeCSS, and practical implementation decisions for production applications.
Key Questions Answered
- •CSS Evolution Path: Developers typically progress from ID-based CSS that mirrors HTML structure, to BEM syntax for reduced specificity issues, finally gravitating toward utility-first approaches that eliminate constant naming decisions and improve development flow by allowing direct styling without abstraction overhead.
- •Component Extraction Strategy: Extract CSS components only when duplication causes genuine pain, not preemptively. Laracasts uses fewer than ten custom CSS components total, with most being core building blocks like cards and buttons that appear throughout the site with complex hover animations requiring traditional CSS.
- •Responsive Design Workflow: When mobile and desktop layouts differ significantly beyond simple flexbox toggles, duplicate the HTML and toggle visibility with hidden/block classes rather than creating complex responsive utility chains. This provides maximum control and cleaner code despite shipping additional markup.
- •Color System Management: Define color palettes in Tailwind config immediately at project start, not incrementally. Without upfront planning, developers face situations where designs require colors between existing shades, creating naming conflicts like needing colors between "red-dark" and "red-darker" that break systematic organization.
- •Performance Benefits: Utility-first CSS eliminates cache-busting on most updates since changes occur in HTML files, not CSS. Combined with PurgeCSS reducing file sizes by 60% or more, and Brotli compression making Tailwind smaller than Bootstrap despite larger uncompressed sizes, production performance improves dramatically.
Notable Moment
Way reveals his initial reaction to utility CSS was complete disgust, calling it arrogant in retrospect. He describes how developers must push through this disgust phase because decades of indoctrination into semantic CSS practices creates visceral resistance to approaches that violate every traditional best practice.
Episode Transcript
In this episode of Fullstack Radio, I talked to Jeffrey Way about building the new laracasts.com with Tailwind CSS. This is Fullstack Radio episode 111. Hey, everyone. Welcome to the Full Stack Radio podcast. I'm your host, Adam Wadden, as usual. And today, I'm here with my good friend, Jeffrey Way. How's it going, Jeffrey? Good. Thanks for having me back. So, the reason I wanted to have you on the show today is, I don't know when it was, maybe towards the end of last year in November or something like that. You put out a new kind of big redesign of the Laracasts website and not even just like a redesign basically a whole front end rebuild as far as I understand and I think it's one of the bigger kind of fancier projects out there that's built with a Tailwind CSS. So I thought it'd be cool to talk about your experience doing that and sort of the decision making process that led to it. Maybe it's some of the pitfalls you've run into with previous approaches you've used to, you know, kinda architect things with CSS and and kinda learn about what that that process was like. So I don't know. What do you think? Yeah. Let's do it. So I guess, first of all, what has been your approach, like, historically to CSS in general and just kinda implementing a design that designers handed off to you? Okay. Historically, probably the the same path that everyone took. So in the past, I would have this would be, I don't know, 2007, something right around there. So in the past, you have that PSD. Right? And then you go and you chop up all of the images, and then you have a folder full of images. And then one by one, you go and you construct the HTML and the CSS. And what ends up happening, everyone does this, I think, especially back then. The CSS basically duplicates the structure of the HTML. Right? So you may have like an ID because back then you only used IDs. You have an ID and then you'd say like post h one or post p or post u l or post arrow u l arrow l I arrow, a. And so your CSS completely duplicates, your HTML structure. And my understanding was this was a best practice. It turns out that's not even close to a best practice, but but I think that's how most people, learned it back in the day. So it's been kind of fun to see over the last five years, everyone kind of zeroing in on how to write good CSS. Mhmm. It it's almost like, you know, where you're going back and forth. Like, okay, this sucks. So I'm gonna switch over here. We're gonna try out maybe this other approach where the CSS doesn't duplicate the HTML, and then you're using classes a little more than IDs. So that way you …
Get the full transcript (16,747 words) + summary by email — free
One-time email with the complete transcript and AI summary of this episode. No account needed.
One email, no spam. We’ll also show you what SignalCast does.
You just read a 3-minute summary of a 81-minute episode.
Get Full Stack Radio summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Full Stack Radio
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
Aug 21 · 76 min
The Tim Ferriss Show
#856: Jim Collins — What to Make of a Life and How to Maximize Your Return on Luck
Mar 5
More from Full Stack Radio
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
Jan 28 · 47 min
Shop Talk Show
689: Tyler Sticka on Colorpeek 2 and Awesome CSS
Nov 3
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links.
Tools
“Jeffrey Way discusses rebuilding Laracasts.com using Tailwind CSS, covering the transition from component-based CSS frameworks like Bulma, utility-first workflows, responsive design challenges, performance optimization with PurgeCSS, and practical implementation decisions for production applications.”
- Tailwind CSSRecommended
“Jeffrey Way discusses rebuilding Laracasts.com using Tailwind CSS, covering the transition from component-based CSS frameworks like Bulma, utility-first workflows, responsive design challenges, performance optimization with PurgeCSS, and practical implementation decisions for production applications.”
- PurgeCSSRecommended
“performance optimization with PurgeCSS, and practical implementation decisions for production applications.”
“[{"name": "Rollbar", "url": "rollbar.com/fullstackradio"}”
“{"name": "Cloudinary", "url": "cloudinary.com"}”
More from Full Stack Radio
We summarize every new episode. Want them in your inbox?
153: DHH – Omarchy and Designing Your Own OS on Arch Linux
152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company
151: DHH – Building HEY with Hotwire
150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0
149: Choosing a Payment Processor, Radical Icons & W3C Hype
Similar Episodes
Related episodes from other podcasts
The Tim Ferriss Show
Mar 5
#856: Jim Collins — What to Make of a Life and How to Maximize Your Return on Luck
Shop Talk Show
Nov 3
689: Tyler Sticka on Colorpeek 2 and Awesome CSS
My First Million
Oct 28
Masterclass: How to go from founder to CEO (without imploding)
10% Happier with Dan Harris
Aug 17
You Can Get Through It: How to Handle the Hardest Things That Will Ever Happen to You | Dr. Lucy Hone
Modern Wisdom
Aug 17
AI DEBATE: What Will the World Actually Look Like in 2040? - #1138
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Startups & Product Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into Full Stack Radio.
Every Monday, we deliver AI summaries of the latest episodes from Full Stack Radio and 192+ other podcasts. Free for one show.
Start My Monday DigestNo credit card · Unsubscribe anytime