{"slug": "tailwind-css", "name": "Tailwind CSS", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "Utility-first CSS framework for styling HTML directly with composable class names.", "recommenders": 22, "commenters": 54, "warners": 13, "score": 13.441, "rising": 10.73, "first": "2025-11-06", "latest": "2026-10-14", "why": "HN commenters like it for keeping styles next to the markup they affect, consistent utility classes across projects, comfortable everyday ergonomics and how easily LLMs write it.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 25, "neutral": 20, "compare": 0, "warn": 13}, "spark": [1, 0, 4, 0, 0, 0, 2, 2, 1, 5, 8, 2], "listed": true, "loved": ["Ergonomics", "LLM-friendly"], "caveat": "Class soup", "short_quote": "the classes are the description of the style once you know tailwind, and they live where the thing they're styling is.", "icon": true, "domain": "pdx.su", "github_repo": null, "official_url": "https://tailwindcss.com", "pricing": "open source", "aliases": ["Tailwind CSS", "Tailwind"], "verdict": [{"text": "HN commenters like it for keeping styles next to the markup they affect", "cites": [{"id": 776067680, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "recommend", "quote": "the classes are the description of the style once you know tailwind, and they live where the thing they're styling is.", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "styling web apps", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 801350947, "item_id": 50084434, "url": "https://news.ycombinator.com/item?id=50084434", "by": "flossly", "date": "2026-10-14", "stance": "recommend", "quote": "CSS with Tailwind and JS with Alpine makes for pages that are mostly \"self contained\"", "excerpt": "Just a few years ago, before the LLM-assisted-coding-era, I already did not like frameworks as much as I used to. I liked Rails. But that was more because through Rails I learned the MVC pattern, learned the layer-middelware pattern from Rack (and the ActiveRecord ORM -- but I now no longer like ORMs but that's a different story). Those 2 pattern I still use today in some way or form, and I find them in many modern (", "context": "", "use_case": "styling", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}]}, {"text": ", consistent utility classes across projects, comfortable everyday ergonomics", "cites": [{"id": 776067680, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "recommend", "quote": "the classes are the description of the style once you know tailwind, and they live where the thing they're styling is.", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "styling web apps", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 794048608, "item_id": 49628038, "url": "https://news.ycombinator.com/item?id=49628038", "by": "davidpapermill", "date": "2026-09-09", "stance": "recommend", "quote": "tailwind is still my go-to", "excerpt": "Don't do a lot of technical work nowadays, but tailwind is still my go-to. Vanilla CSS just doesn't have nice ergonomics. With AI I guess you could skip it, but I like to understand the code.", "context": "doesn't do much technical work nowadays", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 770608080, "item_id": 48163005, "url": "https://news.ycombinator.com/item?id=48163005", "by": "kcrwfrd_", "date": "2026-05-16", "stance": "recommend", "quote": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind.", "excerpt": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind. The ergonomics in my day to day work are quite nice. To me, the better boundary of abstraction shifted to components, rather than the html/css/js \u201cseparation of concerns\u201d that some of the older folks still like to parrot. However, take a look at the markup and styling for the https://maps.apple.com/ web property. I can\u2019t deny ", "context": "writes CSS professionally for ~20 years", "use_case": "styling web apps", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}]}, {"text": " and how easily LLMs write it.", "cites": [{"id": 794261200, "item_id": 49641325, "url": "https://news.ycombinator.com/item?id=49641325", "by": "flossly", "date": "2026-09-10", "stance": "recommend", "quote": "LLMs write Tailwind easily, so that's good.", "excerpt": "Glad they have a patron now. I use it in my project (because scoped-css is not yet available in browsers and I do not want to deal much with CSS). LLMs write Tailwind easily, so that's good. And I do not have yet another place where cruft builds up (the CSS files) while they changes to them can silently mess up some UI I did not check. So thanks Shopify for taking them under your wings. X-mas wish: that the Servo pro", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 775409217, "item_id": 48463076, "url": "https://news.ycombinator.com/item?id=48463076", "by": "holistio", "date": "2026-06-09", "stance": "neutral", "quote": "I ended up switching, even though I still kind of loathe the class soup.", "excerpt": "Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts. I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup. Is AI any good at Clojure?", "context": "", "use_case": "styling", "switched_from": "custom CSS", "story": "Biff.core: system composition for Clojure web apps"}, {"id": 758287059, "item_id": 47392941, "url": "https://news.ycombinator.com/item?id=47392941", "by": "causalzap", "date": "2026-03-15", "stance": "neutral", "quote": "My current stack is Astro/Next.js + Tailwind + TypeScript", "excerpt": "I\u2019ve been a web dev for 10+ years, and my professional pivot in 2026 has been moving away from \"content-first\" sites to \"tool-led\" content products. My current stack is Astro/Next.js + Tailwind + TypeScript, with heavy Python usage for data enrichment. What\u2019s working: Boilerplate & Layout Shifting: AI (specifically Claude 4.x/5) is excellent for generating Astro components and complex Tailwind layouts. What used to t", "context": "independent web dev, 10 years", "use_case": "styling", "switched_from": "", "story": "Ask HN: How is AI-assisted coding going for you professionally?"}]}, {"text": " The most common complaints are cluttered, class-heavy HTML and unintuitive shorthand names that send even experienced CSS writers to the docs", "cites": [{"id": 770596736, "item_id": 48162296, "url": "https://news.ycombinator.com/item?id=48162296", "by": "bitbasher", "date": "2026-05-16", "stance": "warn", "quote": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it.", "excerpt": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it. The HTML bloat was really tough to deal with. I spend far more time in HTML than I'd like, and having more Tailwind classes than I do semantic HTML was really tough to look at. I've settled on using vanilla CSS and applying styles per-page on an as needed basis. For example, include base styles (reset, primary theme, etc)", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 775409217, "item_id": 48463076, "url": "https://news.ycombinator.com/item?id=48463076", "by": "holistio", "date": "2026-06-09", "stance": "neutral", "quote": "I ended up switching, even though I still kind of loathe the class soup.", "excerpt": "Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts. I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup. Is AI any good at Clojure?", "context": "", "use_case": "styling", "switched_from": "custom CSS", "story": "Biff.core: system composition for Clojure web apps"}, {"id": 794067008, "item_id": 49629188, "url": "https://news.ycombinator.com/item?id=49629188", "by": "eudamoniac", "date": "2026-09-09", "stance": "recommend", "quote": "I love tailwind and will continue to use it", "excerpt": "For me I know CSS quite well, but I would always have to look up some utility names that had no intuitive mapping. line-height is leading, flex-direction has no direct mapping, text-wrap is text but also font size is text, so if trying to do font-size:custom you had to do some weird syntax unlike the other custom value syntax lest it confuse text-[1rem] with a text-wrap rule. There are a lot of these weird decisions.", "context": "knows CSS quite well", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794172800, "item_id": 49635800, "url": "https://news.ycombinator.com/item?id=49635800", "by": "paulhebert", "date": "2026-09-09", "stance": "warn", "quote": "I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "excerpt": "Except for all those specific shorthands? I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 744477904, "item_id": 46529869, "url": "https://news.ycombinator.com/item?id=46529869", "by": "tylerchilds", "date": "2026-01-07", "stance": "neutral", "quote": "My team uses tailwind, therefore I use tailwind", "excerpt": "I\u2019ll be honest. I\u2019m a contributor to this. I\u2019ve been CSS since the mid 2000s and I have a lot of it memorized by heart. My team uses tailwind, therefore I use tailwind But I don\u2019t want to reconfigure my mental model to think in esoteric shorthand, when I already have vanilla web tech memorized. So I just write some code to match the design and then I let an llm transform it into what my team expects. I\u2019m sharing in t", "context": "CSS developer since mid 2000s", "use_case": "team CSS styling", "switched_from": "", "story": "Creators of Tailwind laid off 75% of their engineering team"}]}, {"text": ", with some calling it a less powerful layer of indirection over plain CSS.", "cites": [{"id": 794046560, "item_id": 49627910, "url": "https://news.ycombinator.com/item?id=49627910", "by": "GeneralMaximus", "date": "2026-09-09", "stance": "recommend", "quote": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.", "excerpt": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable. That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS\u2014you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you. E.g. I invite you to look at some of Ahmed Shade", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 786322928, "item_id": 49145183, "url": "https://news.ycombinator.com/item?id=49145183", "by": "satvikpendem", "date": "2026-08-02", "stance": "warn", "quote": "It's a layer of indirection for no reason if it's the same.", "excerpt": "If it's just CSS then why would I use Tailwind instead of the actual thing? It's a layer of indirection for no reason if it's the same.", "context": "", "use_case": "styling", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 795466224, "item_id": 49716639, "url": "https://news.ycombinator.com/item?id=49716639", "by": "TimTheTinker", "date": "2026-09-15", "stance": "warn", "quote": "Tailwind is a hack", "excerpt": "This is really great work, but I think a lot of folks on HN don't look kindly on the CSS Zen Garden or that era of CSS. They think the markup/stylesheet separation of concerns was a terrible idea, an idea that Tailwind exists to fix. (I think they're wrong, that separation of concerns is good, Tailwind is a hack, and get off my lawn while you're at it.) The point is - now the modern vanilla web platform really can su", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "The CSS Zen Garden dream, finally shipped"}]}], "praise": [{"label": "Ergonomics", "summary": "Experienced CSS writers say it is pleasant to use day to day and remains their go-to.", "quotes": [{"id": 770608080, "item_id": 48163005, "url": "https://news.ycombinator.com/item?id=48163005", "by": "kcrwfrd_", "date": "2026-05-16", "stance": "recommend", "quote": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind.", "excerpt": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind. The ergonomics in my day to day work are quite nice. To me, the better boundary of abstraction shifted to components, rather than the html/css/js \u201cseparation of concerns\u201d that some of the older folks still like to parrot. However, take a look at the markup and styling for the https://maps.apple.com/ web property. I can\u2019t deny ", "context": "writes CSS professionally for ~20 years", "use_case": "styling web apps", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 794048608, "item_id": 49628038, "url": "https://news.ycombinator.com/item?id=49628038", "by": "davidpapermill", "date": "2026-09-09", "stance": "recommend", "quote": "tailwind is still my go-to", "excerpt": "Don't do a lot of technical work nowadays, but tailwind is still my go-to. Vanilla CSS just doesn't have nice ergonomics. With AI I guess you could skip it, but I like to understand the code.", "context": "doesn't do much technical work nowadays", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794067008, "item_id": 49629188, "url": "https://news.ycombinator.com/item?id=49629188", "by": "eudamoniac", "date": "2026-09-09", "stance": "recommend", "quote": "I love tailwind and will continue to use it", "excerpt": "For me I know CSS quite well, but I would always have to look up some utility names that had no intuitive mapping. line-height is leading, flex-direction has no direct mapping, text-wrap is text but also font size is text, so if trying to do font-size:custom you had to do some weird syntax unlike the other custom value syntax lest it confuse text-[1rem] with a text-wrap rule. There are a lot of these weird decisions.", "context": "knows CSS quite well", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}]}, {"label": "LLM-friendly", "summary": "AI coding tools generate Tailwind well, which led some to adopt it.", "quotes": [{"id": 794261200, "item_id": 49641325, "url": "https://news.ycombinator.com/item?id=49641325", "by": "flossly", "date": "2026-09-10", "stance": "recommend", "quote": "LLMs write Tailwind easily, so that's good.", "excerpt": "Glad they have a patron now. I use it in my project (because scoped-css is not yet available in browsers and I do not want to deal much with CSS). LLMs write Tailwind easily, so that's good. And I do not have yet another place where cruft builds up (the CSS files) while they changes to them can silently mess up some UI I did not check. So thanks Shopify for taking them under your wings. X-mas wish: that the Servo pro", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 775409217, "item_id": 48463076, "url": "https://news.ycombinator.com/item?id=48463076", "by": "holistio", "date": "2026-06-09", "stance": "neutral", "quote": "I ended up switching, even though I still kind of loathe the class soup.", "excerpt": "Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts. I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup. Is AI any good at Clojure?", "context": "", "use_case": "styling", "switched_from": "custom CSS", "story": "Biff.core: system composition for Clojure web apps"}, {"id": 758287059, "item_id": 47392941, "url": "https://news.ycombinator.com/item?id=47392941", "by": "causalzap", "date": "2026-03-15", "stance": "neutral", "quote": "My current stack is Astro/Next.js + Tailwind + TypeScript", "excerpt": "I\u2019ve been a web dev for 10+ years, and my professional pivot in 2026 has been moving away from \"content-first\" sites to \"tool-led\" content products. My current stack is Astro/Next.js + Tailwind + TypeScript, with heavy Python usage for data enrichment. What\u2019s working: Boilerplate & Layout Shifting: AI (specifically Claude 4.x/5) is excellent for generating Astro components and complex Tailwind layouts. What used to t", "context": "independent web dev, 10 years", "use_case": "styling", "switched_from": "", "story": "Ask HN: How is AI-assisted coding going for you professionally?"}]}, {"label": "Locality and consistency", "summary": "Styles live with the markup and the same classes carry over from project to project.", "quotes": [{"id": 776067680, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "recommend", "quote": "the classes are the description of the style once you know tailwind, and they live where the thing they're styling is.", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "styling web apps", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 801350947, "item_id": 50084434, "url": "https://news.ycombinator.com/item?id=50084434", "by": "flossly", "date": "2026-10-14", "stance": "recommend", "quote": "CSS with Tailwind and JS with Alpine makes for pages that are mostly \"self contained\"", "excerpt": "Just a few years ago, before the LLM-assisted-coding-era, I already did not like frameworks as much as I used to. I liked Rails. But that was more because through Rails I learned the MVC pattern, learned the layer-middelware pattern from Rack (and the ActiveRecord ORM -- but I now no longer like ORMs but that's a different story). Those 2 pattern I still use today in some way or form, and I find them in many modern (", "context": "", "use_case": "styling", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}]}, {"label": "Guardrails for teams", "summary": "It helps contributors of varying skill write correct, consistent CSS.", "quotes": [{"id": 794046560, "item_id": 49627910, "url": "https://news.ycombinator.com/item?id=49627910", "by": "GeneralMaximus", "date": "2026-09-09", "stance": "recommend", "quote": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.", "excerpt": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable. That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS\u2014you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you. E.g. I invite you to look at some of Ahmed Shade", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 786325104, "item_id": 49145319, "url": "https://news.ycombinator.com/item?id=49145319", "by": "Aeolos", "date": "2026-08-02", "stance": "recommend", "quote": "You use Tailwind in the same way you use BEM: becuase it makes it easier for frontend developers to write correct CSS.", "excerpt": "If BEM is regular CSS, why would I use BEM instead of the actual thing? It's a layer of indirection for no reason if it's the same. You use Tailwind in the same way you use BEM: becuase it makes it easier for frontend developers to write correct CSS.", "context": "", "use_case": "writing CSS", "switched_from": "", "story": "I don't recommend Tailwind CSS"}]}, {"label": "Server-rendered stacks", "summary": "Commenters pair it with htmx, Alpine and server-side rendering.", "quotes": [{"id": 783266370, "item_id": 48954148, "url": "https://news.ycombinator.com/item?id=48954148", "by": "mamcx", "date": "2026-07-17", "stance": "recommend", "quote": "htmx+ tailwindcss is the one combo that is right and I use it", "excerpt": "This sound fantastic and Django is the main thing I miss from python. htmx+ tailwindcss is the one combo that is right and I use it so seeing is the direction give me hope. Some notes, I hope can be considered!: - The main thing is the auto admin, then `auth`, is great that the `auth` is mean to have a one-to-one connection for your own extensions - The main pain is that everything is tangled to the ORM and the auto-", "context": "", "use_case": "styling", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 787860577, "item_id": 49241286, "url": "https://news.ycombinator.com/item?id=49241286", "by": "vladkorobkov", "date": "2026-08-10", "stance": "recommend", "quote": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js", "excerpt": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js, I am working on a fast dependency-free, typed Mustache renderer for Python 3.12+. https://github.com/servletcloud/fstache", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What are you working on? (August 2026)"}, {"id": 801350947, "item_id": 50084434, "url": "https://news.ycombinator.com/item?id=50084434", "by": "flossly", "date": "2026-10-14", "stance": "recommend", "quote": "CSS with Tailwind and JS with Alpine makes for pages that are mostly \"self contained\"", "excerpt": "Just a few years ago, before the LLM-assisted-coding-era, I already did not like frameworks as much as I used to. I liked Rails. But that was more because through Rails I learned the MVC pattern, learned the layer-middelware pattern from Rack (and the ActiveRecord ORM -- but I now no longer like ORMs but that's a different story). Those 2 pattern I still use today in some way or form, and I find them in many modern (", "context": "", "use_case": "styling", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}]}, {"label": "Bootstrap alternative", "summary": "Seen as lighter and more customizable than Bootstrap, with unused classes removed at build time.", "quotes": [{"id": 794037520, "item_id": 49627345, "url": "https://news.ycombinator.com/item?id=49627345", "by": "danvayn", "date": "2026-09-09", "stance": "recommend", "quote": "The biggest disruption they personally did was offering a better alternative to Bootstrap.", "excerpt": "That was certainly not overnight. The biggest disruption they personally did was offering a better alternative to Bootstrap. More customization, JIT compilation that allowed for custom class interpretation without any added CSS, proper flex consideration, removing unused library classes in the production compilation step, etc. Beyond this, you should really be thanking things like Shadcn for the \u201cdate picker disrupti", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 734791408, "item_id": 45924463, "url": "https://news.ycombinator.com/item?id=45924463", "by": "brokerjames", "date": "2025-11-13", "stance": "recommend", "quote": "Initially we used Bootstrap for responsive design, but later switched to a lighter TailwindCSS framework.", "excerpt": "I\u2019ve been working on http://www.13radar.com for the past 4 months, and we launched about two weeks ago. The platform tracks hedge fund portfolios in real-time based on SEC 13F filings. I\u2019m responsible for product research, analysis, design, development, and promotion. Most of the workflow was powered by AI tools \u2014 more than 60% of the research, design, and coding involved AI assistance. Initially we used Bootstrap fo", "context": "building 13radar", "use_case": "responsive web design", "switched_from": "Bootstrap", "story": "Ask HN: What Are You Working On? (Nov 2025)"}]}], "caveats": [{"label": "Class soup", "summary": "Long utility class lists bloat HTML and make it hard to read.", "quotes": [{"id": 770596736, "item_id": 48162296, "url": "https://news.ycombinator.com/item?id=48162296", "by": "bitbasher", "date": "2026-05-16", "stance": "warn", "quote": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it.", "excerpt": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it. The HTML bloat was really tough to deal with. I spend far more time in HTML than I'd like, and having more Tailwind classes than I do semantic HTML was really tough to look at. I've settled on using vanilla CSS and applying styles per-page on an as needed basis. For example, include base styles (reset, primary theme, etc)", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 775409217, "item_id": 48463076, "url": "https://news.ycombinator.com/item?id=48463076", "by": "holistio", "date": "2026-06-09", "stance": "neutral", "quote": "I ended up switching, even though I still kind of loathe the class soup.", "excerpt": "Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts. I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup. Is AI any good at Clojure?", "context": "", "use_case": "styling", "switched_from": "custom CSS", "story": "Biff.core: system composition for Clojure web apps"}, {"id": 752486448, "item_id": 47030403, "url": "https://news.ycombinator.com/item?id=47030403", "by": "paradox460", "date": "2026-02-15", "stance": "warn", "quote": "It gets worse", "excerpt": "It gets worse Check out the Netlify admin dashboard screenshot in my blog post https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-craftsmanship/#bigmess", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Modern CSS Code Snippets: Stop writing CSS like it's 2015"}]}, {"label": "Unintuitive names", "summary": "Some utility names do not map clearly to CSS properties, so users keep looking them up.", "quotes": [{"id": 794067008, "item_id": 49629188, "url": "https://news.ycombinator.com/item?id=49629188", "by": "eudamoniac", "date": "2026-09-09", "stance": "recommend", "quote": "I love tailwind and will continue to use it", "excerpt": "For me I know CSS quite well, but I would always have to look up some utility names that had no intuitive mapping. line-height is leading, flex-direction has no direct mapping, text-wrap is text but also font size is text, so if trying to do font-size:custom you had to do some weird syntax unlike the other custom value syntax lest it confuse text-[1rem] with a text-wrap rule. There are a lot of these weird decisions.", "context": "knows CSS quite well", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794172800, "item_id": 49635800, "url": "https://news.ycombinator.com/item?id=49635800", "by": "paulhebert", "date": "2026-09-09", "stance": "warn", "quote": "I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "excerpt": "Except for all those specific shorthands? I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 744477904, "item_id": 46529869, "url": "https://news.ycombinator.com/item?id=46529869", "by": "tylerchilds", "date": "2026-01-07", "stance": "neutral", "quote": "My team uses tailwind, therefore I use tailwind", "excerpt": "I\u2019ll be honest. I\u2019m a contributor to this. I\u2019ve been CSS since the mid 2000s and I have a lot of it memorized by heart. My team uses tailwind, therefore I use tailwind But I don\u2019t want to reconfigure my mental model to think in esoteric shorthand, when I already have vanilla web tech memorized. So I just write some code to match the design and then I let an llm transform it into what my team expects. I\u2019m sharing in t", "context": "CSS developer since mid 2000s", "use_case": "team CSS styling", "switched_from": "", "story": "Creators of Tailwind laid off 75% of their engineering team"}]}, {"label": "Weaker than CSS", "summary": "Critics see it as an indirection over CSS that gives up some of modern CSS's power.", "quotes": [{"id": 794046560, "item_id": 49627910, "url": "https://news.ycombinator.com/item?id=49627910", "by": "GeneralMaximus", "date": "2026-09-09", "stance": "recommend", "quote": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.", "excerpt": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable. That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS\u2014you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you. E.g. I invite you to look at some of Ahmed Shade", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 786322928, "item_id": 49145183, "url": "https://news.ycombinator.com/item?id=49145183", "by": "satvikpendem", "date": "2026-08-02", "stance": "warn", "quote": "It's a layer of indirection for no reason if it's the same.", "excerpt": "If it's just CSS then why would I use Tailwind instead of the actual thing? It's a layer of indirection for no reason if it's the same.", "context": "", "use_case": "styling", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 795466224, "item_id": 49716639, "url": "https://news.ycombinator.com/item?id=49716639", "by": "TimTheTinker", "date": "2026-09-15", "stance": "warn", "quote": "Tailwind is a hack", "excerpt": "This is really great work, but I think a lot of folks on HN don't look kindly on the CSS Zen Garden or that era of CSS. They think the markup/stylesheet separation of concerns was a terrible idea, an idea that Tailwind exists to fix. (I think they're wrong, that separation of concerns is good, Tailwind is a hack, and get off my lawn while you're at it.) The point is - now the modern vanilla web platform really can su", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "The CSS Zen Garden dream, finally shipped"}]}, {"label": "Responsive styling", "summary": "One fan finds responsive styling the most awkward part.", "quotes": [{"id": 770608080, "item_id": 48163005, "url": "https://news.ycombinator.com/item?id=48163005", "by": "kcrwfrd_", "date": "2026-05-16", "stance": "recommend", "quote": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind.", "excerpt": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind. The ergonomics in my day to day work are quite nice. To me, the better boundary of abstraction shifted to components, rather than the html/css/js \u201cseparation of concerns\u201d that some of the older folks still like to parrot. However, take a look at the markup and styling for the https://maps.apple.com/ web property. I can\u2019t deny ", "context": "writes CSS professionally for ~20 years", "use_case": "styling web apps", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}]}, {"label": "Less needed with AI", "summary": "One commenter says AI tools make maintaining a plain CSS design system easy enough to skip it.", "quotes": [{"id": 794123552, "item_id": 49632722, "url": "https://news.ycombinator.com/item?id=49632722", "by": "keithnz", "date": "2026-09-09", "stance": "neutral", "quote": "I used to use tailwind a lot, but AI has made it redundant largely.", "excerpt": "I used to use tailwind a lot, but AI has made it redundant largely. There's zero reason to add any library into your stack unless it has significant advantages, tailwinds advantage was largely a developer convenience, and that's not really needed anymore. You can now maintain a design system in CSS really easily and ensure your UI conforms to it using AI tools in a way that seems way more powerful than before.", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}]}], "who": [{"by": "eudamoniac", "context": "knows CSS quite well", "url": "https://news.ycombinator.com/item?id=49629188", "date": "2026-09-09"}, {"by": "ecshafer", "context": "former Shopify employee", "url": "https://news.ycombinator.com/item?id=49628272", "date": "2026-09-09"}, {"by": "davidpapermill", "context": "doesn't do much technical work nowadays", "url": "https://news.ycombinator.com/item?id=49628038", "date": "2026-09-09"}, {"by": "jhonatangalves", "context": "Front-end engineer seeking work", "url": "https://news.ycombinator.com/item?id=49259164", "date": "2026-08-11"}, {"by": "_the_inflator", "context": "founder and product lead of a large financial platform", "url": "https://news.ycombinator.com/item?id=49143448", "date": "2026-08-02"}, {"by": "recursivedoubts", "context": "htmx core team member", "url": "https://news.ycombinator.com/item?id=48720576", "date": "2026-06-29"}, {"by": "Induane", "context": "maintains many small one-off apps", "url": "https://news.ycombinator.com/item?id=48504230", "date": "2026-06-12"}, {"by": "kcrwfrd_", "context": "writes CSS professionally for ~20 years", "url": "https://news.ycombinator.com/item?id=48163005", "date": "2026-05-16"}, {"by": "HiPhish", "context": "former Tailwind hater", "url": "https://news.ycombinator.com/item?id=48162264", "date": "2026-05-16"}, {"by": "causalzap", "context": "independent web dev, 10 years", "url": "https://news.ycombinator.com/item?id=47392941", "date": "2026-03-15"}, {"by": "trsthales", "context": "maker", "url": "https://news.ycombinator.com/item?id=46667540", "date": "2026-01-18"}, {"by": "tylerchilds", "context": "CSS developer since mid 2000s", "url": "https://news.ycombinator.com/item?id=46529869", "date": "2026-01-07"}], "tags": ["for mixed-skill teams", "for AI-assisted coding", "for server-rendered apps", "for component-based UIs", "for many small apps"], "use_cases": ["css styling", "styling", "styling web apps", "styling websites", "css framework", "css"], "compared": [{"slug": "react", "name": "React", "co": 8, "switched_from": 0, "switched_to": 0}, {"slug": "claude", "name": "Claude", "co": 6, "switched_from": 0, "switched_to": 0}, {"slug": "bootstrap", "name": "Bootstrap", "co": 3, "switched_from": 1, "switched_to": 0}, {"slug": "shadcn-ui", "name": "shadcn/ui", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "next-js", "name": "Next.js", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "htmx", "name": "HTMX", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "pico-css", "name": "Pico CSS", "co": 1, "switched_from": 0, "switched_to": 1}, {"slug": "alpine-js", "name": "Alpine.js", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 732823570, "item_id": 45801473, "url": "https://news.ycombinator.com/item?id=45801473", "by": "k_kelly", "date": "2025-11-03", "stance": "recommend", "quote": "We love python, react, tailwind, OpenAI, Google Cloud, and Claude Code.", "excerpt": "Glitch | Product Engineer | Ireland & Remote (EMEA preferred) | glitchads.ai Glitch is building the AI agent for Advertising Glitch let's Businesses create Ad Campaigns in 5 minutes (Down from 5 days) that perform 5 times better than traditional agencies. Our AI makes high performing ads available to everyone. We need Engineers who want to tackle hard problems like treating the real world as context for LLMs, underst", "context": "hiring at Glitch", "use_case": "styling", "switched_from": "", "story": "Ask HN: Who is hiring? (November 2025)"}], "threads": [{"url": "https://news.ycombinator.com/item?id=49626190", "title": "Shopify acquires Tailwind", "mentions": 11}, {"url": "https://news.ycombinator.com/item?id=49141891", "title": "I don't recommend Tailwind CSS", "mentions": 8}, {"url": "https://news.ycombinator.com/item?id=48158400", "title": "Moving away from Tailwind, and learning to structure my CSS", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=46527950", "title": "Creators of Tailwind laid off 75% of their engineering team", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=48496483", "title": "Tailwind and Slop Apps", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=45869146", "title": "Ask HN: What Are You Working On? (Nov 2025)", "mentions": 2}], "sentiment_by_month": {"2025-11": {"warn": 1, "neutral": 2, "recommend": 1}, "2025-12": {"neutral": 2}, "2026-01": {"recommend": 4, "neutral": 3}, "2026-02": {"warn": 1, "neutral": 2}, "2026-03": {"neutral": 2}, "2026-04": {"neutral": 1}, "2026-05": {"recommend": 2, "warn": 4}, "2026-06": {"neutral": 2, "recommend": 2}, "2026-07": {"neutral": 1, "warn": 1, "recommend": 1}, "2026-08": {"neutral": 2, "recommend": 5, "warn": 3}, "2026-09": {"neutral": 2, "recommend": 8, "warn": 2}, "2026-10": {"warn": 1, "neutral": 1, "recommend": 2}}, "quotes": [{"id": 801350947, "item_id": 50084434, "url": "https://news.ycombinator.com/item?id=50084434", "by": "flossly", "date": "2026-10-14", "stance": "recommend", "quote": "CSS with Tailwind and JS with Alpine makes for pages that are mostly \"self contained\"", "excerpt": "Just a few years ago, before the LLM-assisted-coding-era, I already did not like frameworks as much as I used to. I liked Rails. But that was more because through Rails I learned the MVC pattern, learned the layer-middelware pattern from Rack (and the ActiveRecord ORM -- but I now no longer like ORMs but that's a different story). Those 2 pattern I still use today in some way or form, and I find them in many modern (", "context": "", "use_case": "styling", "switched_from": "", "story": "Do Frameworks Matter Anymore?"}, {"id": 800907697, "item_id": 50056731, "url": "https://news.ycombinator.com/item?id=50056731", "by": "sswn", "date": "2026-10-12", "stance": "recommend", "quote": "I use Tailwind with Nitro on a daily basis.", "excerpt": "Yes, most definitely. I use Tailwind with Nitro on a daily basis. Here's how: 1. Import tailwind 2. Build your components: def card(title, body): return Div( Div(title, cls=\"font-semibold text-zinc-900\"), Paragraph(body, cls=\"mt-1 text-sm text-zinc-600\"), cls=\"rounded-xl border border-zinc-200 bg-white p-6 shadow-sm\", ) 3. Run nitro build or nitro dev for live reloads. EDIT: Here is a full guide: https://nitro.sh/doc", "context": "", "use_case": "styling", "switched_from": "", "story": "Show HN: Nitro \u2013 a Python static site generator"}, {"id": 798938768, "item_id": 49933673, "url": "https://news.ycombinator.com/item?id=49933673", "by": "testerius", "date": "2026-10-02", "stance": "neutral", "quote": "I use Tailwind because of components design", "excerpt": "I have not written any CSS from scratch since years. Does normalize.css/reset.css are still viable and used? I use Tailwind because of components design, so I wonder what actually current trends are in context of small/alternative CSS solutions.", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "CSS Bed: Classless CSS themes to use as starting points in web development"}, {"id": 798905872, "item_id": 49931617, "url": "https://news.ycombinator.com/item?id=49931617", "by": "weitendorf", "date": "2026-10-02", "stance": "warn", "quote": "tailwind ui crap (solvable in minutes with css)", "excerpt": "I strongly recommend vanilla html, js, and css. For me the benefits of having no npm and related ecosystem tools and no dependencies far outweigh any benefits you get from switching to specific framework. It took me just as long to learn modern css, html, and basically all the browser APIs as it did to learn how to setup+build+modify+deploy my svelte-vscodeextension-webview project without getting bogged down in the ", "context": "", "use_case": "", "switched_from": "", "story": "SvelteKit 3"}, {"id": 795466224, "item_id": 49716639, "url": "https://news.ycombinator.com/item?id=49716639", "by": "TimTheTinker", "date": "2026-09-15", "stance": "warn", "quote": "Tailwind is a hack", "excerpt": "This is really great work, but I think a lot of folks on HN don't look kindly on the CSS Zen Garden or that era of CSS. They think the markup/stylesheet separation of concerns was a terrible idea, an idea that Tailwind exists to fix. (I think they're wrong, that separation of concerns is good, Tailwind is a hack, and get off my lawn while you're at it.) The point is - now the modern vanilla web platform really can su", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "The CSS Zen Garden dream, finally shipped"}, {"id": 794300496, "item_id": 49643781, "url": "https://news.ycombinator.com/item?id=49643781", "by": "queenkjuul", "date": "2026-09-10", "stance": "recommend", "quote": "I've been using tailwind with svelte at work for years now and really like it", "excerpt": "You wouldn't need tailwind for svelte, but I've been using tailwind with svelte at work for years now and really like it", "context": "", "use_case": "styling with Svelte", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794261200, "item_id": 49641325, "url": "https://news.ycombinator.com/item?id=49641325", "by": "flossly", "date": "2026-09-10", "stance": "recommend", "quote": "LLMs write Tailwind easily, so that's good.", "excerpt": "Glad they have a patron now. I use it in my project (because scoped-css is not yet available in browsers and I do not want to deal much with CSS). LLMs write Tailwind easily, so that's good. And I do not have yet another place where cruft builds up (the CSS files) while they changes to them can silently mess up some UI I did not check. So thanks Shopify for taking them under your wings. X-mas wish: that the Servo pro", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794172800, "item_id": 49635800, "url": "https://news.ycombinator.com/item?id=49635800", "by": "paulhebert", "date": "2026-09-09", "stance": "warn", "quote": "I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "excerpt": "Except for all those specific shorthands? I used it for months at s previous job and spent a lot of time googling \u201chow do I write X CSS property in Tailwind\u201d", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794168144, "item_id": 49635509, "url": "https://news.ycombinator.com/item?id=49635509", "by": "ouraf", "date": "2026-09-09", "stance": "recommend", "quote": "I love tailwind's work", "excerpt": "I love tailwind's work, but AI stole their customer base worse than a natural disaster would destroy a factory or other kind of business, At least some of them got an escape plan before going bankrupt", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794123552, "item_id": 49632722, "url": "https://news.ycombinator.com/item?id=49632722", "by": "keithnz", "date": "2026-09-09", "stance": "neutral", "quote": "I used to use tailwind a lot, but AI has made it redundant largely.", "excerpt": "I used to use tailwind a lot, but AI has made it redundant largely. There's zero reason to add any library into your stack unless it has significant advantages, tailwinds advantage was largely a developer convenience, and that's not really needed anymore. You can now maintain a design system in CSS really easily and ensure your UI conforms to it using AI tools in a way that seems way more powerful than before.", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794067008, "item_id": 49629188, "url": "https://news.ycombinator.com/item?id=49629188", "by": "eudamoniac", "date": "2026-09-09", "stance": "recommend", "quote": "I love tailwind and will continue to use it", "excerpt": "For me I know CSS quite well, but I would always have to look up some utility names that had no intuitive mapping. line-height is leading, flex-direction has no direct mapping, text-wrap is text but also font size is text, so if trying to do font-size:custom you had to do some weird syntax unlike the other custom value syntax lest it confuse text-[1rem] with a text-wrap rule. There are a lot of these weird decisions.", "context": "knows CSS quite well", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794052352, "item_id": 49628272, "url": "https://news.ycombinator.com/item?id=49628272", "by": "ecshafer", "date": "2026-09-09", "stance": "recommend", "quote": "Tailwind is a great css framework", "excerpt": "When I was at Shopify we used Tailwind along with our internal component library to great effect. Tailwind is a great css framework, but their business model is doomed by AI. Tobi acquihiring them for making a great product is a good result.", "context": "former Shopify employee", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794048608, "item_id": 49628038, "url": "https://news.ycombinator.com/item?id=49628038", "by": "davidpapermill", "date": "2026-09-09", "stance": "recommend", "quote": "tailwind is still my go-to", "excerpt": "Don't do a lot of technical work nowadays, but tailwind is still my go-to. Vanilla CSS just doesn't have nice ergonomics. With AI I guess you could skip it, but I like to understand the code.", "context": "doesn't do much technical work nowadays", "use_case": "styling websites", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794046560, "item_id": 49627910, "url": "https://news.ycombinator.com/item?id=49627910", "by": "GeneralMaximus", "date": "2026-09-09", "stance": "recommend", "quote": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable.", "excerpt": "I quite like Tailwind. I've had great experiences with it, especially on projects where the skill level of contributors was highly variable. That said, Tailwind is not as powerful as plain old CSS. It's a bit like training wheels for CSS\u2014you gain some guardrails and prevent newbies from messing things up too badly, but you also give up the power modern CSS affords you. E.g. I invite you to look at some of Ahmed Shade", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794037520, "item_id": 49627345, "url": "https://news.ycombinator.com/item?id=49627345", "by": "danvayn", "date": "2026-09-09", "stance": "recommend", "quote": "The biggest disruption they personally did was offering a better alternative to Bootstrap.", "excerpt": "That was certainly not overnight. The biggest disruption they personally did was offering a better alternative to Bootstrap. More customization, JIT compilation that allowed for custom class interpretation without any added CSS, proper flex consideration, removing unused library classes in the production compilation step, etc. Beyond this, you should really be thanking things like Shadcn for the \u201cdate picker disrupti", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 794023024, "item_id": 49626439, "url": "https://news.ycombinator.com/item?id=49626439", "by": "CodingJeebus", "date": "2026-09-09", "stance": "neutral", "quote": "I used to gripe a lot about how Tailwind docs didn't play well with doc aggregators like devdocs.io", "excerpt": "I used to gripe a lot about how Tailwind docs didn't play well with doc aggregators like devdocs.io, or even implement basic browser search engine integration when I was using it regularly. It now makes sense why they wanted to keep their docs scoped to their domain.", "context": "", "use_case": "CSS framework", "switched_from": "", "story": "Shopify acquires Tailwind"}, {"id": 788146628, "item_id": 49259164, "url": "https://news.ycombinator.com/item?id=49259164", "by": "jhonatangalves", "date": "2026-08-11", "stance": "neutral", "quote": "Tailwind CSS, Styled Components, Material UI", "excerpt": "Location: S\u00e3o Paulo, Brazil Role: Front-End Software Engineer | React \u00b7 TypeScript \u00b7 Next.js \u00b7 Node.js \u00b7 NestJS Remote: Yes Willing to relocate: Yes Technologies: React, TypeScript, Next.js, Node.js, Nest.js, PostgreSQL, REST & GraphQL APIs, Tailwind CSS, Styled Components, Material UI, Jest, Cypress, Playwright, LLM Observability (LangSmith), CI/CD. R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1UMnk9HUMT2djA4ZQcjUCxL0", "context": "Front-end engineer seeking work", "use_case": "styling", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 787860577, "item_id": 49241286, "url": "https://news.ycombinator.com/item?id=49241286", "by": "vladkorobkov", "date": "2026-08-10", "stance": "recommend", "quote": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js", "excerpt": "Being a big fan of the server-side rendering, HTMX, Tailwind CSS, and Alpine.js, I am working on a fast dependency-free, typed Mustache renderer for Python 3.12+. https://github.com/servletcloud/fstache", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What are you working on? (August 2026)"}, {"id": 786386976, "item_id": 49149186, "url": "https://news.ycombinator.com/item?id=49149186", "by": "_heimdall", "date": "2026-08-02", "stance": "warn", "quote": "I take issue with the core promise of Tailwind - localization of styles on a node.", "excerpt": "It isn't shocking and that wasn't my point. The OP is pointing to benefits of tailwind related to onboaring new devs, I was just raising that doesn't match my experience. If a new dev doesn't know CSS well it won't help them. If a new dev does know CSS but doesn't know Tailwind, it still won't help. The standardization can be claimed as a benefit, though it really amounts to avoiding having to architect how CSS is ma", "context": "", "use_case": "styling web apps", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786355824, "item_id": 49147239, "url": "https://news.ycombinator.com/item?id=49147239", "by": "Induane", "date": "2026-08-02", "stance": "recommend", "quote": "I recommend it for certain situations.", "excerpt": "I recommend it for certain situations. I think this is one of those cases where there is no objectively \"right\" opinion. Tailwind exists for a reason and got a market for a reason. That doesn't mean it is always used in the places it's most helpful or that people don't misuse it (or simply not understand the complexity beast that is CSS). That's just the nature of any popular tool I have my own opinions about where i", "context": "", "use_case": "styling web apps", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786325104, "item_id": 49145319, "url": "https://news.ycombinator.com/item?id=49145319", "by": "Aeolos", "date": "2026-08-02", "stance": "recommend", "quote": "You use Tailwind in the same way you use BEM: becuase it makes it easier for frontend developers to write correct CSS.", "excerpt": "If BEM is regular CSS, why would I use BEM instead of the actual thing? It's a layer of indirection for no reason if it's the same. You use Tailwind in the same way you use BEM: becuase it makes it easier for frontend developers to write correct CSS.", "context": "", "use_case": "writing CSS", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786322928, "item_id": 49145183, "url": "https://news.ycombinator.com/item?id=49145183", "by": "satvikpendem", "date": "2026-08-02", "stance": "warn", "quote": "It's a layer of indirection for no reason if it's the same.", "excerpt": "If it's just CSS then why would I use Tailwind instead of the actual thing? It's a layer of indirection for no reason if it's the same.", "context": "", "use_case": "styling", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786298416, "item_id": 49143651, "url": "https://news.ycombinator.com/item?id=49143651", "by": "xpbl", "date": "2026-08-02", "stance": "warn", "quote": "I switched from Tailwind to plain CSS with a UI library and it honestly made my site look better.", "excerpt": "I switched from Tailwind to plain CSS with a UI library and it honestly made my site look better. Probably because it's much harder to spam backdrop effects.", "context": "", "use_case": "site styling", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786295168, "item_id": 49143448, "url": "https://news.ycombinator.com/item?id=49143448", "by": "_the_inflator", "date": "2026-08-02", "stance": "recommend", "quote": "Tailwind is genius.", "excerpt": "I registered my first domain 1997 and before that already coded websites: members.aol.com/\u2026/ I saw the inception of CSS, the infamous ACID test, IE6, web standards movement - anything and everything. To this day, CSS is something that is not separating design from markup (try logic, you will get it), and as all things technology is now a mix of technical constraints, backwards compatibility, totally conflicting decis", "context": "founder and product lead of a large financial platform", "use_case": "CSS styling in large teams", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786288800, "item_id": 49143050, "url": "https://news.ycombinator.com/item?id=49143050", "by": "woutr_be", "date": "2026-08-02", "stance": "recommend", "quote": "I use @apply in quite a few projects, mainly because I like the defaults in tailwindcss.", "excerpt": "I use @apply in quite a few projects, mainly because I like the defaults in tailwindcss. I know it defeats the point of tailwind, but I find that it works nicely when using BEM.", "context": "", "use_case": "CSS styling with @apply", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 786288384, "item_id": 49143024, "url": "https://news.ycombinator.com/item?id=49143024", "by": "throwaway9an1zx", "date": "2026-08-02", "stance": "neutral", "quote": "I use Tailwind for work and hobby projects", "excerpt": "I use Tailwind for work and hobby projects and what you said is exactly what I think Tailwind is and why I use it. I don\u2019t understand where the disagreement is. I was only pointing out a lot of the \u201cmagic\u201d from Tailwind\u2019s abstraction isn\u2019t as magical as the GP you referred to implies.", "context": "", "use_case": "work and hobby projects", "switched_from": "", "story": "I don't recommend Tailwind CSS"}, {"id": 783266370, "item_id": 48954148, "url": "https://news.ycombinator.com/item?id=48954148", "by": "mamcx", "date": "2026-07-17", "stance": "recommend", "quote": "htmx+ tailwindcss is the one combo that is right and I use it", "excerpt": "This sound fantastic and Django is the main thing I miss from python. htmx+ tailwindcss is the one combo that is right and I use it so seeing is the direction give me hope. Some notes, I hope can be considered!: - The main thing is the auto admin, then `auth`, is great that the `auth` is mean to have a one-to-one connection for your own extensions - The main pain is that everything is tangled to the ORM and the auto-", "context": "", "use_case": "styling", "switched_from": "", "story": "Topcoat: The full full-stack framework for Rust"}, {"id": 781862449, "item_id": 48866403, "url": "https://news.ycombinator.com/item?id=48866403", "by": "pgisapedo", "date": "2026-07-10", "stance": "warn", "quote": "But, oops! Tailwind needed.", "excerpt": "Like those \"HTML Templates\" of the early 00s where the demo looks amazing but when you copy and paste it all into your setup hardly anything looks the same. Your outer CSS and FE framework isn't accounted for, and often the overall layout doesn't work / isn't responsive. Then you go to add new components... Suddenly you are missing entire CSS files that were not included in the last thing you pasted in. Gotta find th", "context": "", "use_case": "CSS framework", "switched_from": "", "story": "Shadcn/UI now defaults to Base UI instead of Radix"}, {"id": 780803988, "item_id": 48800249, "url": "https://news.ycombinator.com/item?id=48800249", "by": "theturtletalks", "date": "2026-07-05", "stance": "neutral", "quote": "I wanted to use Tailwind/Shadcn", "excerpt": "Yes, it\u2019s built on the shoulders of giants, Next.js[0] and lesser-known Keystone.js[1]. Next is a full stack framework and Keystone is a CMS built on top of Prisma and GraphQL. Keystone was created by this Australian company called Thinkmill. They have used it to help businesses build custom backend systems for more than a decade. But it needed to be deployed separately from Next and they were using emotion css for t", "context": "", "use_case": "dashboard styling", "switched_from": "emotion", "story": "Mark Zuckerberg tells staff that AI agents haven't progressed enough"}, {"id": 779529217, "item_id": 48720576, "url": "https://news.ycombinator.com/item?id=48720576", "by": "recursivedoubts", "date": "2026-06-29", "stance": "neutral", "quote": "I wanted to give it a try, but didn't really click with it.", "excerpt": ":) i let a younger person on the core team create the new website for something different it is using astro, we are scaling down the use of tailwind (I wanted to give it a try, but didn't really click with it.) I don't mind someone doing something kind of fun with the website and trying something new out, I know some people don't like it but some people do. All good.", "context": "htmx core team member", "use_case": "website styling", "switched_from": "", "story": "Working with AI"}, {"id": 776067680, "item_id": 48504230, "url": "https://news.ycombinator.com/item?id=48504230", "by": "Induane", "date": "2026-06-12", "stance": "recommend", "quote": "the classes are the description of the style once you know tailwind, and they live where the thing they're styling is.", "excerpt": "There are a couple of things: 1. Locality of behavior - the classes are the description of the style once you know tailwind, and they live where the thing they're styling is. I can look at a template and know pretty well how it is going to look without having to go lookup a sites personal bespoke CSS and match what's written there to the markup. 2. It's the same classes as you move from project to project. I have ton", "context": "maintains many small one-off apps", "use_case": "styling web apps", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 775986880, "item_id": 48499180, "url": "https://news.ycombinator.com/item?id=48499180", "by": "queenkjuul", "date": "2026-06-11", "stance": "recommend", "quote": "I use tailwind for everything, and it doesn't look like this.", "excerpt": "I don't really think it's tailwind. I use tailwind for everything, and it doesn't look like this. They're utility classes, you can do absolutely anything you want with them. LLMs just choose to do this. The big gradient fonts came from Apple Keynote, i thought. At least that's where i first saw templates like that.", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Tailwind and Slop Apps"}, {"id": 775409217, "item_id": 48463076, "url": "https://news.ycombinator.com/item?id=48463076", "by": "holistio", "date": "2026-06-09", "stance": "neutral", "quote": "I ended up switching, even though I still kind of loathe the class soup.", "excerpt": "Recently my impression has been that whatever the agentic tools are best at is also what's best for solo projects or proof of concepts. I used to love writing custom CSS, but Claude is just so much better at Tailwind that I ended up switching, even though I still kind of loathe the class soup. Is AI any good at Clojure?", "context": "", "use_case": "styling", "switched_from": "custom CSS", "story": "Biff.core: system composition for Clojure web apps"}, {"id": 773218915, "item_id": 48326182, "url": "https://news.ycombinator.com/item?id=48326182", "by": "Kuyawa", "date": "2026-05-29", "stance": "warn", "quote": "painful deviations like React, Tailwinds, NextJS, I've learned them all", "excerpt": "60/yo and still loving it. I get burned out every couple of years but new technology always refreshes my admiration for the field I chose. It never ceases to amaze me the capacity to reinvent itself, from the early days of dbase and clipper, it came the dial up internet, the craze of FrontPage and webmasters, the move to client/server, Python, Ruby, Go, then mobile apps, Swift, Java, Kotlin, then back to basics with ", "context": "60-year-old longtime developer", "use_case": "", "switched_from": "", "story": "I Am Retiring from Tech to Live Offline"}, {"id": 770671104, "item_id": 48166944, "url": "https://news.ycombinator.com/item?id=48166944", "by": "lofaszvanitt", "date": "2026-05-17", "stance": "warn", "quote": "If you use tailwind, that's a sure sign you don't understand css.", "excerpt": "I used the same structure 20+ years ago in the heyday of the web, when I was starting as a dev. If you use tailwind, that's a sure sign you don't understand css. That's all. It's a signal of your incompetence. And at the same time it shows that the dev ecosystem has serious usability issues.", "context": "developer for 20+ years", "use_case": "CSS styling", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 770608080, "item_id": 48163005, "url": "https://news.ycombinator.com/item?id=48163005", "by": "kcrwfrd_", "date": "2026-05-16", "stance": "recommend", "quote": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind.", "excerpt": "I\u2019ve also been writing CSS professionally for nearly 20 years and am a big fan of tailwind. The ergonomics in my day to day work are quite nice. To me, the better boundary of abstraction shifted to components, rather than the html/css/js \u201cseparation of concerns\u201d that some of the older folks still like to parrot. However, take a look at the markup and styling for the https://maps.apple.com/ web property. I can\u2019t deny ", "context": "writes CSS professionally for ~20 years", "use_case": "styling web apps", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 770599346, "item_id": 48162459, "url": "https://news.ycombinator.com/item?id=48162459", "by": "anydigital", "date": "2026-05-16", "stance": "warn", "quote": "We also moved away from Tailwind", "excerpt": "We also moved away from Tailwind \u2014 Pico CSS. It feels like a breath of fresh, modern CSS air. We actually loved it so much that we\u2019ve taken over maintenance of a fork, and just released our Pico successor candidate: https://blades.ninja/", "context": "", "use_case": "CSS", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 770596736, "item_id": 48162296, "url": "https://news.ycombinator.com/item?id=48162296", "by": "bitbasher", "date": "2026-05-16", "stance": "warn", "quote": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it.", "excerpt": "I used Tailwind in one web based product and it was alright, but I'll never go back to using it. The HTML bloat was really tough to deal with. I spend far more time in HTML than I'd like, and having more Tailwind classes than I do semantic HTML was really tough to look at. I've settled on using vanilla CSS and applying styles per-page on an as needed basis. For example, include base styles (reset, primary theme, etc)", "context": "", "use_case": "CSS styling", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 770596224, "item_id": 48162264, "url": "https://news.ycombinator.com/item?id=48162264", "by": "HiPhish", "date": "2026-05-16", "stance": "recommend", "quote": "Tailwind is really nice as higher-level building blocks and saves me from writing a bunch of media queries.", "excerpt": "I just want to point out that you can use Tailwind inside your CSS with the `@apply` directive (not to be confused with the since abandoned CSS `@apply` rule). You write your CSS and mix in Tailwind instructions where it makes sense. Example: @import 'tailwindcss'; p { @apply text-justify; @apply bg-slate-300 dark:bg-slate-800; /* Second rule just for colors */ display: block; /* regular CSS */ } I used to be a big T", "context": "former Tailwind hater", "use_case": "CSS with @apply", "switched_from": "", "story": "Moving away from Tailwind, and learning to structure my CSS"}, {"id": 765848081, "item_id": 47865505, "url": "https://news.ycombinator.com/item?id=47865505", "by": "amysox", "date": "2026-04-22", "stance": "neutral", "quote": "modern styling with Tailwind CSS", "excerpt": "I guess I was bucking the trend with https://news.ycombinator.com/item?id=47720333, which points to https://electricminds.org. The UI of Electric Minds Reborn (Amsterdam Web Communities System) was not AI-generated. At most, it was AI translated, as I used Claude to help turn old clunky 2006-era HTML into modern styling with Tailwind CSS. See also https://erbosoft.com/blog/2026/04/07/to-ai-or-not-to-ai/.", "context": "", "use_case": "UI styling", "switched_from": "", "story": "Show HN submissions tripled and are now mostly vibe-coded"}, {"id": 758287059, "item_id": 47392941, "url": "https://news.ycombinator.com/item?id=47392941", "by": "causalzap", "date": "2026-03-15", "stance": "neutral", "quote": "My current stack is Astro/Next.js + Tailwind + TypeScript", "excerpt": "I\u2019ve been a web dev for 10+ years, and my professional pivot in 2026 has been moving away from \"content-first\" sites to \"tool-led\" content products. My current stack is Astro/Next.js + Tailwind + TypeScript, with heavy Python usage for data enrichment. What\u2019s working: Boilerplate & Layout Shifting: AI (specifically Claude 4.x/5) is excellent for generating Astro components and complex Tailwind layouts. What used to t", "context": "independent web dev, 10 years", "use_case": "styling", "switched_from": "", "story": "Ask HN: How is AI-assisted coding going for you professionally?"}, {"id": 744477904, "item_id": 46529869, "url": "https://news.ycombinator.com/item?id=46529869", "by": "tylerchilds", "date": "2026-01-07", "stance": "neutral", "quote": "My team uses tailwind, therefore I use tailwind", "excerpt": "I\u2019ll be honest. I\u2019m a contributor to this. I\u2019ve been CSS since the mid 2000s and I have a lot of it memorized by heart. My team uses tailwind, therefore I use tailwind But I don\u2019t want to reconfigure my mental model to think in esoteric shorthand, when I already have vanilla web tech memorized. So I just write some code to match the design and then I let an llm transform it into what my team expects. I\u2019m sharing in t", "context": "CSS developer since mid 2000s", "use_case": "team CSS styling", "switched_from": "", "story": "Creators of Tailwind laid off 75% of their engineering team"}]}