If they used AI to write this and that gave them more time to volunteer their time towards developing this fantastic piece of open source software, then this all seems like a good thing to me.
Some people let punctuation or grammar mistakes ruin an entire text or post for them, because they choose to focus on those flaws, rather than looking past them and taking in the content itself.
"this was written/assisted by AI" is starting to feel like next-gen "this has spelling/grammar mistakes in it, therefore it is invalid".
And I use Claude a lot, 24/7, but not for things like that. And I appreciate how much it elevates my productivity, but not like this. It usually prioritizes or highlights the wrong things, it overfixates on one thing I said and adds random content there out of nowhere.
So then I can't tell what part of it is slop, how slop, and it becomes impossible to trust.
I used "CD era MSDN reference and Raymond Chen blogging style" as a starting prompt for the styleguide and my work ability to digest AI plans raised a lot.
Couldn't recommend it more. Humble, insightful and respecting the reader
When people say LLM slop is disrespecting the reader, I don't think they are complaining about style.
I'm asking to scan projects on gitlab, go through some docs to find more grounding material, write a subarticle (in the same style), scan logs on the test env, issue some curls, etc.; until the whole article is digestible - in the "backing knowledge graph" department.
I'd rather read natural sounding, non-repetitive, and actually useful LLM text than the majority of reddit comments (including the serious ones) for instance.
slop just means "I don't like this style"
when AI writes more reliably in a way that people do like, they will stop calling everything AI does slop.
Obfuscating LLM output to trick the reader into thinking it wasn't LLM output is not respectful.
It's a single git project at my $USER home, that is referenced in global memory. It contains as much information about work things, as possible, to be productive.
I found that, if I allowed Claude to create the notes, it actually became more and more useful, but without the guideline, I just could barely get through reading it manually.
I'd never publish anything with such origin.
Yes there's a quality component to the role of communication in how it respects other people.
There's also honesty, transparency, truth and vectors along the dimensions of "Are we claiming and presenting the truth or are we bending facts and creating impersonations and warping reality?" Most AI is used for the latter today: people are having AI's write their words and speech for them and then the AI says things as though it were the human like "I said xyz" when the AI is NOT the human who did those things. That's lying and deception and disrespect to the reader.
The obvious response is of course, they're just completely unbothered by it. Why change it if it doesn't even matter (to me)? I presume the set of people who use AI like this for writing and the set of people who are annoyed by it are largely not overlapping, and there is a possibility that a lot of the text I read and think sounds human, might be written by an LLM with a style-guide like mine. Still though, if 5 words genuinely can reduce annoyance by a lot of people who read your article, why does it feel like so many people haven't picked up on it yet? Or is the LLM writing highly loved & popular amongst other people perhaps?
It's the same as with too marketing-speak, which conceivably this is. Maybe the actual work is good but Sturgeon's law, it's probably crud. If I really needed a UI library or whatever right now then maybe I'd dig deeper but in casual browsing HN mode? No time, catch them later.
So maybe all your maybes but who cares? It's not AI that made me think badly of them: I think badly of all software by default and it takes more than Claude to change my mind.
I see the same phenomenon at work. A year ago I’d read your two-sentence daily update in slack, all riddled with the quirks and oddities that made it yours. Today when I see the page of headings and emojis describing the couple things you did yesterday, I wince because now I’m the one who has to sift through the fluff to get to the point.
They think it's not worth investing human attention to write it, so why am I expected to invest my attention to read it?
If it's written as SEO spam, why link it here?
If it's written to be read by humans, do they think we're stupid?
If you manage to write an AI assisted article that doesn't tediously follow the "what this means for you", "it's not this, it's that", "One thing. Two things. Three things." formula... I really doubt people would complain.
They could have just written "we asked Claude to rewrite our project with Base UI because it eclipsed Radix in NPM downloads".
Would be kind of funny if someone from the team came out and said it was written by a human.
Those short and punchy two-part sentence groups very much feel like the writing that Claude does, like: The writing feels familiar. Suspicion earns its keep. Ultimately, the judgement remains yours. Not conjecture, your thoughts.
Then again, I bet how much aversion people feel to that sort of thing depends on how much they’ve been exposed to that, especially in frustrating circumstances. Personally, that’s a lot (daily Claude Code) and sometimes that writing makes me really upset.
Or maybe people genuinely just write like that and overuse that style and Claude has ruined it for me, whereas otherwise I wouldn’t have given it a second look.
Maybe it's a style that's always existed in moderation, but now it feels like it's being applied to every paragraph in every document or social posting.
I think the broader phenomenon with the AI tells is it is revealing about a person's consumption. If they already interacted with and read material that resembled AI output, it wouldn't seem as weird. But if you encounter a particular pattern with the AI before you encounter the human patterns that trained it that way, it seems like an AI quirk.
It might also be the overuse of specific phrases and patterns. I sometimes scan over my own blog posts to see what appears too often and there are things that I overuse in my own writing as well.
Of course, the difference here is context. In a comment, you're not expecting well-written sentences, structure, and editing. So we jump at these things that seem out of place because of the context.
> sometimes that writing makes me really upset.
You know what makes me upset?
- No writing
- Or bad documentation
- Or just no documentation
- Or just nothing being written down about something
For me, at its core, the most important thing is accuracy. Is it accurate? If so, good. We can start from there. If your issue is style, fine, but that's a personal judgment. As long as it's accurate, I'm fine.
Most humans speak in “garbage” and not perfectly correct sentences. Imperfection makes it human.
In this case, it’s not about unwanted sophistication, but fluff and specific sentence structures that tell you this was written by AI, not the actual people behind the project. I guess the closest analogy is to always being left on voicemail.
"Because you own the code. You've added variants, changed classes, threaded new props. A codemod handles the components you never touched and breaks on the ones you did."
Instead the humans who promoted and allowed the LLM content to post behind their human identity, didn't bother to update the LLM language and either do a) mark the post as AI generated or b) properly update those pronouns so it isn't an AI speaking through the humans point of view.
Consider this exaggerated example: Would it be ok for you if in a zoom meeting with your team someone was lip syncing an AI speaking on their behalf, both impersonating voice tonality, the words chosen, and even pretending to voice the humans thoughts themselves? Of course you wouldn't. So now extend this to the words people write in articles like this one where the "I said" perspective was used many times supposedly by an AI.
for example, in this article (if it was truly Claude written):
> Last year, Base UI tagged a beta and a lot of you asked if we are going to replace Radix with it. I said "the worst thing you can do for your production app is switch component libraries". I meant it, and it still holds. So instead of switching, we did the shadcn thing: we rebuilt every component for Base UI, kept the same abstraction, and let you choose. December brought npx shadcn create with both libraries. January brought full Base UI docs.
If an AI wrote this, why and how is it pretending to be a human and the humans on the team at that? That's impersonation, and it's a lie and deceptive. I personally don't want a culture where my AI agent is talking as though its me, when a pro-cooperative and honesty/truth preserving culture would instead say "My human said" or at least label correctly that this is an AI acting on behalf of a human.
For what it's worth, I didn't get that vibe reading this post.
Oh, and the target audience of movie you are watching are other people in the movie industry. Nearly everyone in the audience can tell where production cheaped out
The copy paste approach may be easily modifiable but creates new problems - ie now there is an upgrade ai agent for something that should just be ticking up a version number.
Not a boring application, a very large application -- each major version update was a tedious process because they completely upended many APIs.
We've migrated to shadcn, and upgrades are now easy; we can upgrade a single component -- add the new ones free.
With MaterialUI we had to update EVERYTHING to their new APIs to be able to take advantage of the new features anywhere.
With shadcn we can be selective.
Grabbing an off-the-shelf UI library is easy in the short term, but it’s usually overcomplicated, implements things I won’t ever need, is hard to tweak if/when you want to distinguish your app from the thousand others using the same library, and when you do decide to upgrade it, all your tweaks break in subtle ways.
What I think would be the best approach is building your own UI library. You own it, you get to reuse it across different projects and maintain the same visual style (if desired), and you add features when you need them.
It let's you copy in snapshots and change/edit/refine as you go. You own the UI kit the moment you copy it in. I see Shadcn 'upgrades' as nothing more than a stranger's PR to my UI kit, which usually means useless noise, unless there's a specific feature/bug that I need.
It's one more thing to maintain, and it's also difficult to push back on things. If you use off the shelf components it's much easier to say to designers and managers that a UX pattern is not available or not valid. You can point to the mature well known community owned UI library you use and make it authoritative. It's harder to do it if you build your own, suddenly each designer and developer is throwing things in there, adding features etc. It's also difficult to agree on the structure, so the components are well thought out, flexible, but also not so flexible to lose semantics. It's not an easy job, do you use slots, composition, rendering callbacks, there are too many decisions and you spend time building the UI library instead of actually shipping features.
Ah, but it's rarely just that in many systems. It can only be just that if the component library does exactly what you want. Unfortunately, it happens quite often that component doesn't entirely do what's needed.
People bolt on extra CSS to the components all the time. Two lines of CSS is very tempting if the alternatives are a few hours of work at least. But those two lines need to be verified against every new feature of the component library.
Do those two line fixes a lot, and upgrading becomes A Project.
I wrote something about it a few years ago when shadcn was relatively new on the scene https://andrewingram.net/posts/recipe-kits-a-great-alternati...
With shadcn / the copy paste format, you’ll almost never see that happen. The button shadcn provides for example is just css / tailwind. And if you did ever for some reason want to bring in a dependency for your button component you wouldn’t have to consider its effect on your other UI elements. The rest of your components can live independently (for the most part)
We have customized UI components we got from shadcn and now some use radix and some use base ui, and some have other dependencies or no dependencies at all. Properly tree shaken this is not a big deal at all and we can upgrade components individually as needed.
For boring applications this may be a bit much. But even then if you wait too long and mantine falls behind more than a couple versions, who knows how easy it would be to get your whole project up to date.
I use Material UI for all my AI coded applications. Am I doing something wrong? What difference would Shadcnd even make in a world of Claude Code?
Isn’t either infinitely customizable via CSS? So what’s the difference?
Is it ever that simple?
If a component as basic as a button or a list view ever requires an “upgrade”, something is fundamentally wrong to begin with. HTML5, ARIA, etc. aren’t cutting edge technologies that the ecosystem still needs time to figure out. This should be pull once and forget.
Vendoring your components gives you the best of both worlds. You get a full component library but retain the ability to modify them as you want.
Your AI agent claim doesn't make any sense either. When upgrading normally your component just gets rewritten on disk. When switching from radix to base ui, a more comprehensive approach is needed.
When You're Ready to Migrate
You don't need to migrate. But if you want to, we built a skill for it:
pnpm dlx skills add shadcn/ui
Then ask your coding agent:
migrate accordion to base-ui
Thanks internet.
I'm far from a native web evangelist, I think there's a lot the web APIs especially HTML gets wrong, but div overuse is also wrong.
I’m trying out Ark UI on a side project. They do have some genuinely useful components, like tags input: https://ark-ui.com/docs/components/tags-input
They have a tabs/“segment group” component with a nice animated active element indicator which would probably be tricky to implement: https://ark-ui.com/docs/components/segment-group
And then they also have stuff like overcomplicated “click to copy” button and a <details> reimplementation: https://ark-ui.com/docs/components/clipboard, https://ark-ui.com/docs/components/collapsible
All with a verbose markup that renders as a div soup.
Even if they’re more deterministic, I wonder if the days of codemods are numbered.
What you want isn't skill files for LLMs, though. Just write docs for humans. Write a migration guide, for humans.
It's going to take us a while to realize they should be the same things, skill files and docs.
PrimeNG had a licensing change recently and I'm looking at a suitable alternatives for a fresh project.
Both attempts [1] to surface this on HN failed but if you are using a PrimeTek component library you need to be aware of this change.
PrimeNG, PrimeReact, and PrimeVue are all going fully closed source and ongoing licencing will be $800 per developer seat in 2027. [2]
The previous repos have been archived. [3]
PrimeFaces remains open source but it's now developed and maintained by independent volunteer developers who are not employees of PrimeTek.
[1]: https://hn.algolia.com/?q=The+Next+Chapter+of+PrimeTek
Any community forks?
That being said, a group did fork PrimeNG, and plan on maintaining it (new name pending)
So essentially they look and operate the same as Radix components at the shadcn level but you have low-level control later on should you need it.
Trying to decide between the two atm.
Having a library not in anyway related to that to me feels like a big pro.
I have found React Aria to be very good. I really like how its a set of hooks, a set of premade components using said hooks, and I like how you can choose bits of either approach for your own components. Some of the hooks are very useful.
MUI (who started Base UI) hired the Radix "original" developers and they were pushing that as it being Radix v2.