Hacker News new | past | comments | ask | show | jobs | submit login
Tailwind JIT fails to credit Windi CSS (antfu.me)
34 points by hide_yo_kids on March 25, 2021 | hide | past | favorite | 32 comments



Fu claims:

  Tailwind used/inspired by Windi’s idea without even mentioning Windi CSS once and claiming it’s their own ideas
Adam Wathans tweet:

  Props to others who have explored this approach in the past like.. @satireven who proved this could work with Tailwind's API with Windi CSS

  For years I had wanted to explore an official CSS-in-JS library to get some of these same benefits, but Windi CSS especially gave me hope we could do something universal with zero runtime cost.
So, what specific ideas are being used here? The idea of a CSS-in-JS library, or something more implementation specific?


I don't understand the outrage here by Windi CSS. What more are they looking for? Tailwind credited them. And Windi is _based on Tailwinds API_.


Since Windi CSS is MIT, and Tailwind JIT doesn't seems to have copy or took any of the code from Windi CSS. What is the problem here? Copying an idea?

There's just a tremendous amount of craftsmanship in between a great idea and a great product. And as you evolve that great idea, it changes and grows. It never comes out like it starts because you learn a lot more as you get into the subtleties of it.


One open source library was inspired by another but didn’t mention it. What a scandal.


Did Windi credit all the people who have pioneered JIT compilation? There is nothing to be upset about here, you had an idea... Cool. Someone thought that was a good idea and re-implemented it in their framework.

If the windi devs are this entitled, I can see why you might roll your own, seeing how insufferable it could be to work with them.


I don't understand. They stole code? Methodology? It's not clear really what the beef is.


If I understand this correctly, one library built a feature another library has using independent code? That doesn't sound to me like a scandal of any sort.


I dont see why it needs attribution when it's MIT. Okay, you may argue its about ethics. Then why the heck do we need different types of license then? Whatever the licence people still want attribution, share in business that use their project etc etc. Lets just put on the README.md attribute me, release the source or do whatever you want, dont use my project for profits.


> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The MIT license has just one condition, but it's there. (If you don't want it, try 0-clause BSD.)

The original purpose of the MIT license was to require attribution: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=926...

(From other comments, it sounds like Tailwind isn't a derivative of the copyrighted work in Windi, just the idea, so the MIT license is not relevant. But if the MIT license is relevant, the one and only thing the MIT license obligates you to do is to attribute the origin of the code. Even if you incorporate it into GPL'd software, even if you incorporate it into commercial software, the MIT license and the original copyright notice must be preserved.)


But the code wasn’t even used, from what I can tell. No one is even making that claim. It was just an idea for a feature.


Offline dead code elimination was already a thing. Moving it online seems rather natural.

Could you come up with that idea independently? I think so.


The video had pretty high production value.

I think I'm still a fan of Adam Wathan. It seems like it would have been so easy for him to credit Windi CSS, and it would have made it an all around great video to me. I don't understand why he didn't do it. Perhaps if I had done it I would have talked about Windi CSS for five minutes and it would have distracted from the point of the video. Maybe even talking about it for five seconds would have distracted from the point of the video?

FAAMG companies also don't credit people for making bits and pieces of things they release, even when they directly use them to deliver a key feature. In this case he didn't use WindiCSS' code at all, and it seems like they probably wouldn't have needed to because they no doubt took a different approach. Maybe Adam Wathan is a bit like Steve Jobs.


It sounds like the crux of the issue is found in this tweet (mentioned in the blogpost):

> I remember the day when Windi got blown up on Twitter, @adamwathan called me and asked me about how Windi CSS works and he is happy to make it official. And yeah, I was excited to see things are improving for the whole community, so I shared all I know with him. [1]

Speculating, but this sounds like Anthony Fu lost his trust in Adam Wathan after their personal one-on-one conversation about how the Windi CSS technology works, then failing to mention it subsequently.

As also mentioned in the blogpost, Adam did end up mentioning Windi CSS in a tweet, only after the pushback from Anthony's original tweet. [2]

[1] https://twitter.com/antfu7/status/1371538602488786945

[2] https://twitter.com/adamwathan/status/1371542711086559237?s=...


Yeah. Perhaps it was a simplistic explanation and Adam Wathan got bored and went on to working on it on a brand new implementation. I would have a hard time making an implementation of something like that sound impressive. I imagine @adamwathan meets a lot of people, some of whom he continues collaborating with, and some who he doesn't.

He also had a similar issue w/ Heroicons, which are icons from Tailwind. Someone made heroicons.dev which shows a filterable list of them, and later Tailwind made one and put it on heroicons.com which also has a very similar looking filterable list of them.

Again it was an idea that could be explained in its entirety in under a minute.


But what does "he is happy to make it official" mean? Make what official?


Maybe it was an invitation to get involved with the tailwind project, and if he did maybe WindiCSS could have rebranded and become the Tailwind JIT and the authors would be credited as contributors - not featured as prominently as Adam and his company but still known within the community.


So it wasn't make explicit, but I assume this offer was turned down.

I wonder when Fu says:

  Windi pushed Tailwind to make the JIT
If that relates to this?


Did tailwind use windi's implementation in a significant way?


> In this case he didn't use WindiCSS' code at all, and it seems like they probably wouldn't have needed to because they no doubt took a different approach.

No.


> didn't use

> it seems like they probably wouldn't have needed to

> they no doubt took

I'm getting conflicting signals here. Could you edit your posts to remove the words referring to probability and impressions since you know for a fact what happened?


No. I am just speaking from personal experience. It makes zero sense for Tailwind to copy and paste from another project, built by a different team to different coding standards, and end up with a different result (Tailwind JIT is faster and less production tested than Windi CSS). Even if they did, I don't think they would lie about it.


AFAIU all the buzz is about good manners. If you announce smth with pomp, it's good to not forget about those who has contributed to the achievements


So we are back in the phase of mixing html and style, which was considered super bad practice just a few years ago. Now we have components frameworks like vue or react so some people argue it's not that bad to mix html and style. How long before we consider things like tailwind as bad practice again?


The thing is there is no hivemind best practice. It depends on a lot of factors such as team size, project duration, technology stacks, etc... As you may already know being able to spot pros and cons ahead of time and avoiding pitfalls for a specific scenario just comes from experience. So if anyone is uncertain about how to proceed, the only way you can become more comfortable in decisions is to try all the things and learn the nuances of different approaches. Eventually it becomes much more natural and requires less effort.


Does this mean never put style strings in html? Whether by style-attr, JS or CSS, that html tree has to get style attributes somehow.

I sort of accepted a similar view, that functionality and presentation should be separate (although base html isn't necessarily representative of either).

Now have a more nuanced view: functionality and presentation don't map strictly to logic (js) and style (CSS) - I think there is such a thing as presentation logic, versus data logic.


It was only considered super bad by a subset of people. Usually not the people creating and maintaining web apps.


The "subset of people" known as "good developers." Lately they haven't been creating and maintaining web apps because of things like Tailwind.


Pretty sure ‘good developer’ wasn’t the discriminating factor.


This will almost surely happen.

CSS will be extended until it solves the pain points, at which point things will swing in the other direction.

It's just a question of where your abstraction point is. Currently it's in a component. Tomorrow it might move.


Frankly the Windi code should not be MIT—make a custom license that requires attribution.


Attribution and reproduction of license are literally the only conditions that MIT has.


If you actually use the project's source code, and this is not the case. Being inspired by a MIT project doesn't have any condition at all.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: