Rahul 👨🏽💻 retweeted
Devs, be honest: do you know this logo? 👇
Before you look it up, hint is in the ALT badge.
Replying to @rahuldotdev
I'm surprised this rant resonated with so many people. But also glad that I'm not alone with these thoughts. :)
Rahul 👨🏽💻 retweeted
youtu.be/luhgjBrRulk
This is actually heartbreaking to see what's happening with open source projects like TailwindCSS.
Can't wait for the day to get internet $ money, and support such projects.
This got me thinking about the tanstack as well, not sure how things are with them, yesterday I was checking query.gg and wants to buy it someday soon. But not all the people would opt for so how tanstack as OSS would be making money in the long run is something to see.
I remember Tannar mentioned earlier that most of the team has full time job but work on the TanStack as well.
So I guess for now, that layoff thing is not an issue, and I hope all OSS makes money eventually or finds a model that works in the long run.
Rahul 👨🏽💻 retweeted
What a week ...
StackOverflow is practically dead and Tailwind is also struggling to keep its business going.
Thanks to AI, Tailwind is getting used more than ever before, and StackOverflow helped AI models "learn" about programming.
Now AI may eat them both.
I really, really hope Tailwind can find a way of making money in the future.
Rahul 👨🏽💻 retweeted
MiroMiro is live on @ProductHunt 🎉
Show some love and support today 🫶
producthunt.com/products/mir…
Rahul 👨🏽💻 retweeted
Stop using rating libraries. I've created a CSS-only star rating component with half-star support in just 60 lines. No JavaScript. Fully accessible. Smooth hover interactions.
Here’s how it works: 🧵
Rahul 👨🏽💻 retweeted
Replying to @omkarships
If git is the kitchen where you cook, GitHub is the restaurant where you can serve, review, and improve your food with teams.
Rahul 👨🏽💻 retweeted
People promoting vibe coding with zero technical knowledge. You can't build anything substantial without fundamentals. Imagine building the next big platform with millions of users and you don't know how to add an environment variable. Not gatekeeping, just honesty.
Rahul 👨🏽💻 retweeted
You’re building an app.
You don’t want slow pages.
You don’t want the database to struggle under load.
You don’t want to recompute the same things on every request.
So you add Redis.
Reads get faster.
Latency drops.
The database finally gets some breathing room.
You ship with confidence.
It feels like performance is handled.
Then the app grows.
More users.
More features.
More places where “just cache it” seems like the right answer.
And production starts acting strange.
Some users see old data.
Counters drift out of sync.
Memory usage keeps climbing.
A cache miss suddenly sends a flood of traffic to the database.
Nothing is crashing.
But the system feels… fragile.
What’s actually happening isn’t mysterious.
You didn’t remove complexity.
You moved it.
Redis is not “free speed”.
It’s:
•A separate data layer
•With its own data model
•Its own failure modes
•And its own trade-offs
That changes how your system behaves.
Without Redis:
App → Database
One source of truth.
Clear consistency.
With Redis:
App → Redis → Database
Now Redis becomes:
•The first place your app looks for data
•A shield protecting the database
•A potential source of inconsistency
•A major factor in correctness
Cache invalidation stops being a joke.
You have to decide:
•What expires
•What must stay in sync
•What can safely be stale
Redis won’t help you make those decisions.
It will do exactly what you tell it to do.
Even if that slowly makes things worse.
Performance still obeys the same rules.
Keys matter.
TTL choices matter.
Data shape matters.
Redis removes repeated work.
It removes unnecessary database load.
But it doesn’t remove responsibility.
You still have to:
•Be deliberate about what you cache
•Understand read vs write patterns
•Plan for cache misses
•Treat Redis as a performance tool, not a source of truth
Redis makes fast systems possible.
Keeping them correct, predictable,
and easy to change later,
that part is still on you.
Rahul 👨🏽💻 retweeted
Replying to @asmah2107
This is basically a game of Cat and Mouse. The old "block the IP" trick doesn't work anymore because bad actors have thousands of cheap, disposable IPs.
To actually stop them without annoying your real users, you have to stop looking at volume and start looking at behavior.
Here is 3-layer approach:
1. Stop trusting IPs; start tracking "Identity"Since they rotate IPs constantly, you need to identify the client.
Fingerprinting: Use things like TLS fingerprints (JA3) or browser signals (Canvas, Screen Res) to create a unique "Device ID." Even if they switch IPs 100 times, that fingerprint usually stays the same. Rate limit that.
Signed Tokens: Only let people talk to your high-value APIs if they have a short-lived token—one they only get after passing a login or a CAPTCHA. No token? No entry.
2. Make it expensive (Proof of Work)Don't just block them; make them pay in CPU cycles.
The trick: Force the client to solve a tiny cryptographic puzzle (like a hash calculation) before you accept the request.
Why it works: A real user won't notice a 500ms delay. But a bot trying to spam 10,000 requests a second? Their CPU will melt trying to solve those puzzles.
3. Look for "Weird" PatternsReal humans browse naturally:
Home→Search→Item. Bots usually just hammer endpoints: Item→Item→Item.
Global Velocity: Even if the requests are coming from different places, if your /login endpoint suddenly sees 500% more traffic than usual, trigger a "Panic Mode." Force a CAPTCHA for everyone or throttle that specific endpoint until things cool down.
Rahul 👨🏽💻 retweeted
What if GitHub made you take a quiz about your PR before requesting reviews, to make sure you know what's in it? And if you don't...
Rahul 👨🏽💻 retweeted
Replying to @krishdotdev
The main reason I moved from Windows to Linux was speed. Had limited resources back then.
Tried Ubuntu, Mint, and ultimately Arch cz of its reputation among devs.
With Arch, I found that even small things could sometimes create a lot of friction in my workflow.
Could have switched back to Mint, but took a chance to see how things are with Windows now. Upgraded the machine and moved back to Windows again.
So far so good.
Rahul 👨🏽💻 retweeted
Good news!
Range syntax for style queries and if() functions has shipped in Chrome!
Check it out ⤵️
una.im/range-style-queries




















