The issue is in the definition of "good engineering". If good engineering means that humans must inspect and approve every line of code, then we will hit a wall. There will be systems that simply cannot be built.
It would be like saying that "good engineering" means that programmers must inspect every _bit_ of the binary produced by their compilers. We'd hit a wall pretty quickly then.
If we want to push the boundaries of what is possible with computers we are going to have to accept that humans cannot be the bottlenecks inspecting irrelevant details.
And, at this point, the individual lines of code are becoming irrelevant details.
@_vecs@system_monarch Yes, this could be it. Depends if the backend code allows the string "localhost" .
Also, on the frontend side, depends if the localhost was earlier being resolved with iPv4 and now being resolved with iPv6. Browsers have both but prioritises one over the other.
@hmtroxx1611@Nikhilsingh21_ hmtroxx1611 Arey bhai, thoda Bhojpuri mein: "Trumpwa, tu toh ek number ka baklol ba! Tweet karat-karat dimag kharab kar liyis, America ke barbaad kar dihis!" 😄 (Light fun, na? No real hate.)
Interpreting the natural logarithm of a positive number as the area under the graph of y=1/x over an interval leads to a demonstration of Napier's inequality.
Some thoughts on Radix, component libraries, and shadcn/ui.
We’re at that point in the web dev cycle where we’re talking about component libraries again. That’s okay. With Radix receiving fewer updates, it’s a conversation worth having.
Let me start with this and I’ll bold it: The worst thing you can do right now for your production app is switch component libraries.
Don’t do it. That’s not where your time or resources should go. Whatever bug you’re seeing with Radix in your app, you’ll likely run into more, including new ones, with something else. (No shade to anyone. That’s just how code works.)
Yes, Radix is getting fewer updates. But Radix is still a mature, well-designed library, battle-tested and used in millions of production apps. Code doesn’t stop working just because maintainers move on. That’s the strength of open source. And what Radix does, it still does extremely well.
Here’s what I’d suggest:
- Already using Radix in prod? Stick with it.
- Starting a new project? Consider Radix, React Aria, or Ariakit. All great choices.
- Using Radix and thinking what's next? Keep an eye on Base UI (we are). It’s built by the same smart team that created Radix. They’ve done it once. Now they get to do it again and it’s looking really good (currently in beta).
- Hit a bug with Radix and can’t find a fix or patch? Try testing the equivalent from Base UI. The APIs are very similar.
- shadcn is built for this. Code you own. Code you can improve, rewrite or replaced.
The most important thing: Use something that works for you and that you understand. Your component library should be stable. This isn’t where you want to take risks in your tech stack.
Every new project (not just component libraries) goes through growing pains: bugs, API changes, missing features, incomplete docs. It’s okay to wait it out, especially for production apps.
Now, where does shadcn/ui fit into all of this?
shadcn (unfortunately named 😅) is not a component library. It’s an idea. It’s a combination of a few things: an open abstraction, great defaults, and a distribution system.
- An open abstraction built on top of several component libraries. Radix being one of them. It’s code you’d write yourself, structured in a way that’s easier to work with. Loved by LLMs.
- Carefully chosen defaults that handle the smaller things like focus states, animation styles, variants, and components that naturally fit with one another. Just enough to be a great starting point, and just enough to get out of the way when you’re ready to build your own design system.
- A distribution system that makes it easy to build, generate, and share code. Built for AI.
The component library is just one layer of shadcn. And if it ever comes to it, a swappable one.
3. Communication skills 🤝
There can be team members who are difficult to work with, requirements that are not detailed. Balancing words while conveying clearly defined expectations is an art which is as important as tech for engineers .
Shipped a project in < half the original time. Here are some of my 3 takeaways 🧵 :
1. Parkinson's law is real. We need to be lean on how quickly we can get a mvp going. But deadlines can be unrealistically short too. Make informed decisions and call out bottlenecks early on 🦾
2. Always go back to the code . Once I raised my last feature PR, I started reviewing how I could have handled the errors better,if we strayed away from basic clean code practices & are our solutions really as rock solid as we thought they'd be? Found this super helpful 🤖