sh03
banner
sh03.dev
sh03
@sh03.dev
🇮🇹 Software Dev. Primarily: Typescript, React, 🐘 PostgreSQL.
🤌
Pinned
sh03 @sh03.dev · Apr 24
"That's great!"
= Normal

"THAT'S GREAT!"
= Yelling

"that's great"
= Sarcasm
The more I watch Pluribus the more I think "them" are such a close representation of what an LLM sounds like.
November 23, 2025 at 4:47 AM
Choosing Convex is the equivalent of putting all your money into 1 stock.

Diversify your tech stack and be ready to replace everything. Because you will.
That's how you keep a codebase healthy.
November 22, 2025 at 1:08 AM
Sync engines that connect directly to the database feels like a stranger reaching for your private areas. Seems wrong.

Databases should only be connected to a backend you can control. That's the mind of the application. And the mind is never as simple as just CRUD operations on a database.
November 21, 2025 at 5:21 PM
Reposted by sh03
on type safety
June 14, 2025 at 2:42 PM
From my "things that should have happened decades ago" collection
November 19, 2025 at 8:15 PM
Reposted by sh03
I am prepared to vote for anybody who will stop this
November 15, 2025 at 6:42 PM
Reposted by sh03
This. If I detect AI involvement in your PR, it immediately lowers my evaluation of your competency level. It's just what happens.

And that burden is not something I'm going to bear. You've now ruined any implicit trust I had in your abilities.
so now when they say "I vibed it" there's basically no longer an implicit seal of quality backing it up. You can no longer say "oh, this is Bob, he knows what he's doing"
November 15, 2025 at 8:21 PM
Reposted by sh03
🚀 TanStack DB 0.5 is here with Query-Driven Sync

Your component's query IS the API call. No custom endpoints. No GraphQL resolvers. Just write your query and DB figures out exactly what to fetch.

Details 🧵👇
November 12, 2025 at 10:08 PM
Yes, humans sometimes get facts wrong and make things up but not in the thing they are experts in. Expert humans tend to have professional integrity (because it benefits them in the long term) and have the ability to say "I don't know but I can look it up" and improve. AIs just gaslight you instead.
I've been thinking about this lately in terms of "do they get facts wrong and make things up? yes, and so do humans so 🤷"
November 7, 2025 at 7:51 AM
Amazing
November 4, 2025 at 3:35 PM
Reposted by sh03
So I'm reviewing a PR from a colleague that was written for like 95% by AI, and while it might have made his job easier, it's making mine a lot harder because it's riddled with mistakes and issues that I have to now fix, and I feel like I have to thoroughly check every single line of code twice
November 4, 2025 at 10:42 AM
Reposted by sh03
November 2, 2025 at 8:41 PM
Reposted by sh03
claude makes me more productive because I look at its output and then I'm like "damn this sucks, I guess I gotta write it myself"
November 2, 2025 at 2:17 PM
I find it outrageous that some programmers maintain open-source libraries for free, allowing large corporations to earn billions from them, while the developers themselves receive none of those profits; except maybe from some high visibility libraries.
November 1, 2025 at 5:13 PM
We have officially gone too far.
Yet another directive.

Nobody writes code like this, come on. This is a solved problem: you create a task queue and then have a scheduler execute these tasks.

Why is the ecosystem moving more and more towards pure magic?
November 1, 2025 at 4:34 PM
Reposted by sh03
"0 kB of JavaScript is not a feature" - @rich-harris.dev

#perfnow #WebPerf
October 31, 2025 at 4:58 PM
Friends don't let other friends code in dynamically typed languages.
October 31, 2025 at 11:08 AM
Programming in a dynamically typed language is like assembling a puzzle where all the pieces are squares: quick to fit, tricky to get right.
October 31, 2025 at 11:07 AM
Reposted by sh03
Here's another fun little TypeScript Builder pattern trick you can use if you want to require a specific execution order on its methods using the "Pick" utility type. While the generated JS is fine, tsc will yell at you.
October 31, 2025 at 3:45 AM
Literally can't wait for this to become generally available.
October 30, 2025 at 8:18 PM
Reposted by sh03
This is silly but sometimes I want this syntax to exist in JavaScript.
October 29, 2025 at 9:29 PM
I hated structural typing in TypeScript but I gotta say: it's growing on me. With structural typing you can always implement nominal typing but not viceversa.
October 29, 2025 at 8:32 PM
October 28, 2025 at 10:38 PM
It's always Safari
JavaScript top-level await is no longer considered 'baseline' due to a pretty big Safari bug caniuse.com/mdn-javascri...

The module graph fails in cases where two modules import a third at the same time. Demo: random-stuff.jakearchibald.com/bug-repros/t...

It's best to avoid the feature for now 😔
JavaScript operator: await: Use at module top level | Can I use... Support tables for HTML5, CSS3, etc
caniuse.com
October 26, 2025 at 9:56 PM
Reposted by sh03
I've been using @tanstack.com Start for a new project and it's super good. The server functions completely replace the need for TRPC/GraphQL/REST, the middleware is composable and fully typed, and having TSRouter's nice typing and stateful search params is icing on the cake. A+!
October 25, 2025 at 11:30 AM