12 ms·
Coming to Terms with Tailwind
- tut-urut-utut 5y agoCongratulate to the author. At this day, it takes quite a bit of self-awareness to be able to look at some previously (openly published) opinions, reconsider them, and admit that the opinion changed.
- cloogshicer 5y agoHe never said that his opinion changed. He just said that he accepted that Tailwind is now part of the frontend dev landscape (for better or for worse, time will tell), and tried to name some good parts of it.
- hnedeotes 5y agoSincerely I don't understand what's the appeal of tailwind. It's just one more sign of dementia to add to the landscape.
- jakeva 5y agoHave you tried it? I don't know what you mean by "sign of dementia", but I find the approach taken by tailwind makes me a lot more successful in applying designs. Doesn't feel like dementia to me.
- sam0x17 5y agoIf I go to it and it has react-specific crap all over it, I hit the back button
- TheGeminon 5y agoWhat React-specific stuff does Tailwind have? It's a purely CSS framework.
- sam0x17 5y agoLet me rephrase. If I go to something and I see npm, I hit the back button.
- hnedeotes 5y agoYes I did, that's why I'm of that opinion. What it does is force you, as other frameworks, to learn all its intricacies, design decisions, use an heavy and complex development environment (that besides that reads files it doesn't have anything to go about reading?) so that you don't need to learn the underlying language. Then it nudges you to write a soup of classes (that you need to learn, and need to learn the config because it seems by default it has -400 but not -500, or whatever, and need to learn their priorities), that you need to keep changing and copying pasting (yes you can write classes that coalesce your styling... but that's kinda the point of CSS and/or any other pre-processor), and forget about semantically marking your html. (I'm not saying you have to write it badly, it's just that writing it poorly seems much easier - and is the same with CSS). I just don't see the point - with the exception of the pre-processing part of course - CSS can use some little help in some places to generate programatically some things but I think those are better served by a pre-processor and not a framework as the framework tends to guide the overall design of the remaining things.
- Wolfr_ 5y agoWe're trying to find the balance between semantic classes and utilities now with @apply. I've always found layout to be easier with utility classes (regardless of Tailwind, this counts for Bootstrap 4 too). I like "atom"-like components better with semantic classes. In BEM/ITSS I'd make a component for -everything-. But in Tailwind we'd only make one for common "atoms" such as buttons, tags, inputs etc. Code example: write ".t-button" and then use @apply to put the classes there. Keeping the design constrained to a set of tokens. .t-button { @apply border inline-flex items-center px-3 leading-5 font-medium rounded focus_outline-none focus_ring-2 focus_ring-offset-2 focus_ring-blue-500; }
- hnedeotes 5y agoSo yeah, I agree with pre-processing utilities - but this is just the same problem as with CSS and I think the apply idea is actually pretty neat... But... I need to know all those classes to know why the final rules are put in place, I need to know that they don't have conflicting properties, or if they have, their priorities. And when you add your own custom apply's in there, then it can also break just the same. And when you customise your tailwind classes it ends the same problem. So when you're trying to figure out why rows in a table with the same number of headers and same number of td's have different sizes because some no-breaking space class was applied, and why your a.btn isn't getting the same styling as your button.btn and etc, I always feel like I've wasted more time than I should (perhaps because I know css and used it extensively) I might have been a bit harsh on saying "dementia" as it's disrespectful for those who've put the work in writing it and releasing. It's better than all previous frameworks - I just personally think that it's problem searching for a solution as you can't really win.
- brightball 5y agoAfter years of wrestling with what the “right” UI framework was and marrying your project to the syntax and rules, Tailwind has entirely removed that concern from my life. https://www.brightball.com/articles/thank-you-tailwindcss https://www.brightball.com/articles/thank-you-tailwindcss
- hnedeotes 5y agoBut honest question, wouldn't those years of wrestling with the right UI framework be better spent learning the underlying CSS rules and adopting a simple pre-processor that gives you programmatic generation for repetitive bits? Because in the end, tailwind is better than bootstrap, but it's still the wrong way and incentivises wrong patterns. And by making it "standard" it makes everybody new to the field start with it and use it, foregoing learning the CSS. And will be supplanted at some point, and then there'll be the dance again. And again. It's just this that I don't understand. At the point you're customising tailwind and classes you run into the same problems as with CSS without clear guidelines/organisation. So the only way to not run into that it's to use it as inline styles but with classes...
- brightball 5y agoHonest answer: I already knew them. I’d used plain CSS for years following the Zen of CSS approach which I was very fond of and I was a big fan of SASS for simplifying it too. Dealing with browser quirks got old though. The issue is that most CSS is approached from a perspective that you’re going to reuse a specific part over and over in your HTML as a single tag. Tailwind realizes that this happens, but simply argues that in most code it happens in templated loops instead of all over your source code. So instead it focuses on reusable parts that cover all of the browser quirks and can be easily combined. It’s such a boost to productivity and practicality that I can’t believe it hasn’t been around forever.
- hnedeotes 5y agoYeah, I don't feel the same pains though.
- Sr_developer 5y agoThis is the thing, not all projects are super giant web applications being maintained by hundreds of front-end developers. For a dummy like me who curses at the laptop every time he needs to center a div and whose style sense pretty limited, tools like tailwind are a bless. I do a small library of components, copy what people who knows more than me does (taking examples from here https://tailwindcomponents.com/ https://tailwindcomponents.com/) adapt them to my needs and that's it. I dont have neither the skills, nor the time or the inclination to spent time on other alternatives. I like the style (more than bootstrap) and I am willing to pay the price of a cluttered html.
- theflyinghorse 5y agoI personally wouldn't trust a person who can center a div on the first try - something isn't right with them! What makes me concerned with tailwind is that its yet another API to remember. Why would I pick it over material UI with some theming or chakraUI? Why Did you pick tailwind over material or chakra?
- jackson1442 5y agoHaving worked with Tailwind, Bootstrap, and mUI, Tailwind is by far my favorite. With bootstrap and mUI you have to work very hard to go against the grain of the design they ship with, while Tailwind forces you to make your own designs, to an extent. Sites can _feel like_ bootstrap or mui sites, but rarely have I seen something and immediately thought “this is a Tailwind site.”
- vehemenz 5y agoFor one, Tailwind has a minimal learning curve if you already know CSS. That's a huge thing going for it. Secondly, UI frameworks are more suitable for full-blown applications, whereas Tailwind can be used for anything—applications, Wordpress themes, static sites, etc.
- Kaze404 5y agoMaterial-UI React specifically has terrible performance. It's been a known issue for a while and it's still causing problems on the latest version. One of my projects has a seemingly random 400~500ms render time on any component that uses even a single Material-UI component, which I believe to be an issue with their styling engine. It's incredibly frustrating. Since Tailwind is literally just CSS classes, at the very least I know I won't ever run into this.
- emerongi 5y agoSlightly less typing (compared to CSS), pre-defined memorable names, good documentation and a library of examples. It's just convenient, that's it. Ideologically I don't like it; for getting work done, it's nice. Theoretically you could achieve much of it in a "more correct" way, but we don't have the resource to do that in our company and ultimately it wouldn't be much of a value-add. Tailwind saves time.
- wwweston 5y agoMost people don't actually do design systems, because most organizations aren't set up to make/reward systematic design approaches. Like any system that doesn't plan/support for its own maintenance, this means that most systemic/semantic approaches break down. The larger the team/projects, the greater the entropy inputs. Solution: don't do it. Drop your styles (or some mediated subset) directly into a component. This also "solves" the overhead of separating style from content and other ways in which CSS suffers from "everything happens somewhere else"-itis. Personally, I think tailwind is the wrong solution to these problems and we'll see posts about how this turned out to be a local maximum at best in about 2-4 years (or, hey, recently by the author of this post), but people climb to local maxima for a reason.
- cageface 5y agoHere's a tip: if a lot of smart, informed people have a very positive view of a technology but it doesn't click for you, it may not be the right tool for you but it very likely is not a "sign of dementia".
- leephillips 5y agoOh yeah? What about C++?
- cageface 5y agoGood luck finding anybody with a "very positive" view of C++ other than maybe Bjarne. People that do real work with C++ will give you an honest assessment of its strengths and weaknesses. There are good reasons it's still so widely used and it's still the right tool for some jobs. Using it for something it's not well suited for is a mistake, of course. Of course it's also a tool with a lot of legacy cruft accumulated over decades so it's not a great analogy for Tailwind.
- pantulis 5y agoC++ will gladly create the dementia for you.
- hnedeotes 5y agoThank you, I can be wrong obviously, but your argument in light of our current times would actually indicate that a lot of smart informed people are more tending to idiotic brainless emanations than anything else. This is of course unrelated to tailwind and the words I used there were pretty uncharitable - it's open source after all - but I have yet to see a good example of it clicking, the way I've seen it, in my assumedly small real use sample pool, doesn't seem good at all.
- cageface 5y agoI've been doing CSS in all kinds of flavors for over 20 years now. Tailwind is the first approach I've tried that's both enjoyable and maintainable.
- throwthere 5y agoI don't know how Twitter works exactly but if I was using it for promotion I'd probably block the negative nancies from piggy backing on my posts if I could too. Anyway, I think the tooling around Tailwind (at least in React/next) has gotten much better since the author wrote his initial criticisms AND tailwind is even more ubiquitous now-- which for better or worse makes it more acceptable even if some of the CSS mappings change over time. We put up with that sort of problem with JS as a matter of course so maybe my attitude is too blasé on that point though.
- shams93 5y agoWell I have to support legacy browsers so I won't be using tailwind, but that doesn't mean I won't "cheat" on css by using material design lite. I literally have a 14 day deadline with no designer on hand. I know I need a framework its just in my case the less sexy MDL is more useful because it has great support for legacy browsers.
- sgt 5y agoMost people who think they need to support legacy browsers don't actually need to. Evergreen browsers upgrade themselves. Clients should also know that running an ancient browser poses a security risk, so you could use that as reasoning, too.
- cldellow 5y ago> Then there comes the point where I have to use Tailwind for work and I am blocked by an offical account and – that feels kind of stupid? Getting blocked by a company entity for having an opinion is kind of… strange? I don't understand comments like this. You still have access to tailwindcss.com for documentation. The company doesn't owe you space in their social media conversations. The company has real customers and potential customers who they want to engage with. Engaging with people who tweet "Tailwind is a terrible way to write CSS" [0] and "Refactor tailwind out of your codebase" [1] isn't a good use of the company's time. Blocking those people will also downrank their comments in @tailwindcss threads, which seems useful from the company's perspective. They're running a business, not a grievance forum. Maybe, one could argue, the company should engage strenuously with critics like this to try to convert them. But for me, no, they should focus on supporting the people who want to be their customers. [0]: https://twitter.com/wolfr_2/status/1310887766595637248 https://twitter.com/wolfr_2/status/1310887766595637248 [1]: https://twitter.com/wolfr_2/status/1280949237820383232 https://twitter.com/wolfr_2/status/1280949237820383232
- Wolfr_ 5y agoNice of you to look up those from my hundreds of tweets. Now, since we bought Tailwind UI to do our work, we are technically also a customer.
- cldellow 5y agoWell, you mentioned being blocked, so I searched your name + tailwind. Probably the company monitors the tailwind and tailwindcss keywords, saw those tweets, and decided that their signal-to-noise ratio for doing customer engagement would be better if they blocked you. It's not a statement about your twitter account in general, or you as a person. It's just that their corporate objective wasn't served by your tweets. Now that your company is paying them, perhaps you can ask to be unblocked. Or perhaps not, as the support channels for Tailwind UI (the paid product) are GitHub, email and their private Discord.
- Wolfr_ 5y ago
- tambourine_man 5y ago> Just like I don’t like React I will probably never really like Tailwind. >But that doesn’t mean that I can’t be a professional and write the best Tailwind code I can if that’s what’s asked of me. This is something that I can’t understand. Maybe it’s just me, but we’re incredibly fortunate to be in a market with huge demand. It’s not like we live in a React only world. You can make a pretty good living writing in whatever language, framework, ecosystem you choose. I’m terrible at self promotion and still I manage. It’s great when what’s fashionable matches your personal taste. It happened to me a few times. But when it doesn’t, it’s pretty fine as well.
- Wolfr_ 5y agoThe context is that we're primarily a design company, the front-end is a way to express our designs. A big reason for me is that I want the bigger group in our company to experiment with several CSS techniques to grow as front-end developers. If I (as a manager) set a constraint on one type of CSS it is difficult to learn more. As an agency it makes sense to have broad capabilities. I think as a freelancer it's super fine to just constrain yourself to what you like, as you state there is huge demand out there.
- tambourine_man 5y agoIt's wonderful to experiment. I wanna give Tailwind (and React) a second try if I find the time. It's just that the post comes across as resignation, as if these techs are a fact of life.
- handrous 5y agoSome tech is easier to sell than others, depending on your market. If you're an agency chasing startupy clients, for instance, the more technical people on the other side of the table want to hear that you're going to use tech that they think will look good on their résumés and/or enable them to easily hire startup-type developers, so making sales means choosing some subset of that tech that will make them nod in agreement when you name-drop it, and also enables you to deliver working software efficiently—even if you think there are better tools for the job. For several years this has meant talking about how much your teams just looooove React (whether they actually do is irrelevant). Same holds for ordinary jobs. Depending on the kinds of jobs you want, it can be a reasonable choice to settle on tech you don't really like, just because the hiring market's hot for that tech, so it's much easier to get hired and/or to command a higher salary.
- zschuessler 5y agoThe underlying problem I see that Tailwind solves is component-izing a single idea. And that it doesn't get in the way with opinions like Bootstrap, et al. It does that pretty well. You can point to a single stack of code and say "this one thing is a navbar" and it's easy to know where to make changes. No searching, no stress. What I haven't seen Tailwind do well on my projects is respond to change in the same way other methods would. I'm not saying it isn't possible, just that the several projects I've seen, it was a big pain. A method I've been quite fond of to accomplish the same task, but remove the difficulties this author's other posts articulate, is to recreate the concept of a component in a single folder. Much like you would a Vue single-file component. If you read the "Components" heading here you'll get a good feel for it by looking at the folder/file structure: * https://github.com/flyntwp/flynt#components https://github.com/flyntwp/flynt#components That same idea I've enabled in a framework/language-agnostic way with an NPM module I created (not public). It watches the folder, namespaces css/js like a single-file Vue component would (using a manifest name or defaults to the folder name). It's a freeing feeling to create a folder and just start coding sass and js without having to wire anything together. As it's auto-namespaced, sass files are very clean too, you can use generic naming like ".heading" without a problem. This solution is nice because: 1. devs get the "one source of editing" in a single folder. Even image assets or your language's logic files. 2. Immense benefit with static analysis tools. Want to assert all your components have a readme.md? or generate docs from all component readmes? Sure. 3. it's performant, with vendor/tree-shaking and inheritance built in. Also parallel build execution of all components. 4. it's agnostic to language/frameworks. Include any linters or unit tests you want. 5. is a paradigm shift from themes to components, just like Tailwind 6. No more wiring together components! specify a global like Vue or your favorite sass package, and all components can inherit it 7. Simple setup.. all you do is point to a folder of components, specify a dist folder, and you're done unless you want to modify specific behaviors I'm curious if there are Tailwinders out there who could teach me if Tailwind solves other problems I'm not seeing. Or if this type of solution would be something I should open source. It ends up being a pretty simple Webpack file under the hood, and it has been an absolute dream to work with over the past year.
- grayrest 5y ago> I'm curious if there are Tailwind users out there that could teach me if Tailwind solves other problems I'm not seeing. I'm building a RAD platform (I hate the term low code) and just pushed through Tailwind as the only method for styling apps and banned custom CSS. The primary value Tailwind provides is a reasonably well considered design system. I believe CSS' primary weakness is the general inability to define cross-cutting abstractions. I think of the style of an object as a composition of concerns: spacing, position, size, typography, color, decoration, etc. Programming languages have interfaces or traits or protocols to handle this sort of thing but there's no equivalent in CSS. The addition of CSS variables provides limited ability to do this like you can set up a primary color and use that everywhere but CSS variables alone don't let you set up type or spacing scales. I realized this in 2009 and switched over to defining these abstractions as sass mixins that basically boil down @apply with Tailwind utilities where my mixins were the first part of the utility name and the argument(s) the last part. Having a design system simplifies the job of both the designers and developers. There's no guessing on whether it's a 5px or 6px margin, it's a `margin(2)`. Further, if you pick cooperating scales, the page tends to fall into a vertical rhythm, which is tough to do ad-hoc. Tailwind is an improvement over my self-designed sass mixins mostly because it has more effort behind it and enough people banging on it that it's been expanded to cover a majority of the CSS you need to implement apps. I add a set of CSS-variable based color names to handle theming (`pri` for primary, `sec` for secondary, `ter` for teritary, and `acc` for accent, with `-dark` and `-light` variations) and allow custom utilities for the project. The latter provides an unsupported escape hatch but is enough friction that I'm hoping people won't abuse it excessively. For my specific use case there are other benefits: * No specificity issues * Having to come up with a name for elements is a significant source of friction in a graphical interface * Naming CSS classes well requires some concept of the overall system and how the element being targeted fits into it. I do not expect my users to have this knowledge. * I only allow modification of specific points in a component that have a data- attribute containing component-unique names. This will allow me to change the underlying markup and have a fighting chance at successfully migrating custom styles. * By breaking the link between styling intent and page structure I have the potential to translate apps into non-browser programming environments. I find Tailwind markup to be quite ugly and think it doesn't have as much advantage in other situations but it fits my specific problem well.
- PhilipTrauner 5y ago> Tailwind UI’s Figma file has the highest level of quality I’ve ever seen in an external Figma file This cannot be overstated. The included Figma file alone is arguably worth Tailwind UI's asking price.
- unknownOrigin 5y agoI can't be the only one who hears "Figma" for the first time ever. From a quick google it appears to be an Illustrator like vector format?
- Wolfr_ 5y agoThis is the best design app since 2016. Has Google Docs-alike multiplayer editing but in a design doc. Love Figma.
- andrewingram 5y agoThere’ll always be people hearing about a thing for the first time. Figma is quickly replacing Sketch (which replaced Photoshop and Fireworks) as the preferred tool for web and app design, and they’re just raised a round at a valuation of $10B. So it’s a pretty major player now!
- DrBazza 5y agoNot liking React, and Tailwind, is a bit like saying 'I don't like Netty/Sprint Boot, I'll write my own web server'. css (and javascript/webasm) are the lowest levels in web development, of course people are going to build on top of them. Building a design system on top of css is not a surprising outcome. It's not different to building a library on top of a language. The only problem I have with tailwind is that it reminds me of the days of 'save this Word document as HTML' and the horror that was MS markup in HTML. Having said that, I use it, I like it, and it allows me to just do things and move on. If I don't know something, the design is discoverable with a bit of thought, unlike the underlying css.
- mgkimsal 5y agoHow is saying "I don't like tailwind" leading to "I'll write my own webserver"? If tailwind was, magically, the only alternative to hand-rolling everything, perhaps, maybe, but it's not.
- DrBazza 5y agoMy analogy, which seems to be a poor one judging by the downvotes, is that css is lowest level you can get for layout in browser, so it's inevitable that someone will write something of a higher abstraction to simplify it's usage (discoverable with limited class names), give it a particular purpose (consistent scales), and make it reusable. This is exactly what a library (webserver) is written on top of a language of your choice (java). It's not unreasonable to expect someone to take a similar approach to tailwind and write a similar thing that targets something even more specific such as animations.
- mgkimsal 5y agoThe downvotes probably came from your 'all or nothing'. There are, and have been, multiple abstractions at various levels, for years. Implying that if someone doesn't like these particular abstractions, they advocate "build it yourself" is wrong, and that's how it came off.
- leephillips 5y agoOne sentence in the article suggested that, ideally, people making websites would just learn CSS, but since that‘s an unrealistic expectation (why?), Tailwind can be useful if you have big team of “front-end engineers” who don’t quite understand the markup languages that they use in their jobs. I can’t argue with that. But it suggests that if you work alone or in a small group, actually learning CSS might make more sense.
- hesarenu 5y agoAre people using tailwind without knowing css?
- leephillips 5y agoApparently. This is how I interpreted this passage in the article: “I can forever claim that people should just learn CSS but if that happens to be a difficult thing, maybe we should try to make a deliverable that is more… malleable.” I could have misinterpreted that, however; I found much of the writing confusing.
- matthewmacleod 5y agoYes. I've most commonly seen it used for exactly that purpose – people who have no interest in knowing CSS but need to style something. I think this is probably one of the most common sources of complaints. Some people who already know CSS in-depth will see Tailwind being endorsed by others, take a look themselves, and come to the conclusion "why on earth would I ever use this". I totally understand that, because it's how I feel. But it's important to remember that people still want to style things without being CSS experts, and one of the things Tailwind is good at is letting that happen. It clearly fills a need and yelling at the proverbial clouds isn't going to help.
- dmitriid 5y agoNot just that: I know CSS reasonably well, and I understand what most of Tailwind classes do on their own. But for the life of me I could never come up with a consistent set of rules like margins, paddings, colors etc. Tailwind is a mini design system on its own (even if it's "just a utility-first CSS framework"). I don't have to spend too much time thinking which margins to add or set the typography right. Set an `m-2` and a `text-sm`, and you're done :) All/Most of that can definitely be replicated with, say, CSS vars, but then you're back to "okay, how do I consistently name these components".
- mrcwinn 5y agoAs someone who's building an MVP, I just want to express how unbelievably grateful I am for Tailwindcss, Tailwindui, Heroicons, and HeadlessUi. Fantastic work.
- sgt 5y agoAgreed. I bought TailwindUI not because I am interested in how the UI actually works or even writing custom components from the start, but rather because I wanted to get a professional look initially and focus on the business logic of the app. UI isn't the most important thing, after all.
- Keats 5y agoI still don't get Tailwind either but I found https://github.com/seek-oss/vanilla-extract https://github.com/seek-oss/vanilla-extract recently which solves the TS/CSS modules nicely. All the styles are extracted at compile time so no overhead like most CSS-in-JS.
- tshaddox 5y agovanilla-extract combined with Sprinkles is roughly comparable to the Tailwind software architecture, but without the default configuration out of the box. There’s definitely room for someone to come along with a default configuration that covers similar functionality to Tailwind’s.
- mssundaram 5y agoThis looks really useful, thank you
- deleted 5y ago[deleted]
- jancsika 5y agoThis article makes the same equally persuasive point if you substitute the word "crack" for "Twitter."
- madhato 5y agoI find the best thing about Tailwind is when your hiring for a good front end developer you can weed out anyone that uses Tailwind.
- spacec0wb0y 5y agoYou'll also be weeding out the smart ones
- nickjj 5y agoIf anyone is on the fence with pre-made UI components around Tailwind I just put out a video the other day reviewing Tailkit (it has 300+ Tailwind components, layouts and pages). The author was also kind enough to giveaway 2 copies which is covered in the video. That giveaway ends Saturday July 10th. The video is here: https://nickjanetakis.com/blog/reviewing-tailkit-300-tailwind-components-and-giving-away-2-copies https://nickjanetakis.com/blog/reviewing-tailkit-300-tailwin... I've been using it in a few projects and it's really nice. There's no affiliate links or kick backs for promoting Tailkit either, I'm just a happy user.
- lloydatkinson 5y ago> after I wrote a bit of criticism that got popular. Nah, you was just jumping on the bandwagon of hating on Tailwind without even trying to understand the fact you are meant to use components with it. Given that this bandwagon regularly attacks Tailwind (or anything modern in fact) and the fact that you tweeted completely antagonistic and unneeded "refactor tailwind out of your codebase" to someone who was showing an interesting way of doing animation in Vue, I can't blame them for blocking all the N number of accounts that are harassing them. Anyone is in their rights to block someone that is antagonistic or nasty or just generally hurtful on a constant basis to them. Arguing against something knowingly in bad faith (e.g. stating incorrect facts about X to hate on X) is 100% antagonistic. Actions have consequences? https://twitter.com/wolfr_2/status/1280949237820383232 https://twitter.com/wolfr_2/status/1280949237820383232 And even now you continue with "Now, getting blocked by a person, that’s one thing. I guess Adam’s coping strategy with criticism was an “I don’t want to hear it.”. Yeah, again, I can see why he blocks accounts of people like this. Flippantly phrasing it as "Oh, I guess they don't like being criticised" shows a lack of appreciation for why someone might block someone. Because they just don't want to put up with someone's shit. Who can blame them? > I don’t know if I was entirely productive at first because I first had to shake up my dev stack to add in support for PostCSS, PurgeCSS and figure out all kinds of Tailwind specific things. Fortunately you don't need to purge anymore, as it instead creates the CSS file you need upfront instead of purging it after.
- chuckSu 5y agoI take it you’re a tailwind fanboy?
- jgalvez 5y agoWhoa, no mention of WindiCSS yet — https://windicss.org/ https://windicss.org/
- deleted 5y ago[deleted]