My take
Why I use Tailwind CSS
Tailwind solved the naming-things problem for me. Co-locating styles with markup, leaning on a constrained design token system, and getting tree-shaken CSS by default has made my UI work both faster and more consistent.
Want the broader stack philosophy? Read about how Sri picks tools or browse engineering insights.
Honest assessment
Strengths & tradeoffs
No tool is perfect. Here's what shines and what to watch for.
Strengths
- Constrained design tokens enforce consistency
- Tiny shipped CSS via JIT and tree-shaking
- No naming overhead - utilities map directly to design
- Excellent IDE support with IntelliSense
- Plugin ecosystem covers forms, typography, animations
Tradeoffs (honestly)
- Markup gets verbose with long class lists
- Learning curve for the utility vocabulary
- Customizing the design system requires config discipline
- Some teams find it visually noisy
Fit assessment
When to reach for Tailwind CSS
Pick the right tool for the job.
Best fits
Design systems with strict token usage
Component libraries paired with React/Vue
Marketing sites where bundle size matters
Rapid prototyping with shadcn/ui
Multi-theme applications
Not ideal for
Teams committed to BEM or scoped CSS conventions
Projects requiring runtime style changes from arbitrary inputs
Designers uncomfortable reading utility classes
Common use cases
Resources
Learn more
Curated official docs, tutorials, and writing on Tailwind CSS.
Services
Where I apply Tailwind CSS
Engagements where this technology shows up regularly.
Case Studies
Tailwind CSS in production
Real engagements where this technology shaped the outcome.
Browse the full case study archive.
Stack
Pairs well with Tailwind CSS
Tools and platforms I commonly combine with this one.
Frameworks
More in this category
Frameworks that shape how I build apps and APIs.
Need help with Tailwind CSS?
Whether you're starting fresh or optimizing an existing implementation, I can help you get the most out of this technology. Read more in insights or get in touch.