Shu (@shuding_) 's Twitter Profile
Shu

@shuding_

@vercel. @nextjs, @v0, @aisdk, Satori, SWR. Don’t talk unless you can improve the silence.

ID: 517723461

linkhttp://shud.in calendar_today07-03-2012 16:09:17

2,2K Tweet

44,44K Followers

2,2K Following

Shu (@shuding_) 's Twitter Profile Photo

Why’s it different? - It makes cross-context communication as simple as RPC-style function calls, that are fully typed - And you can pass and/or return Promises and Async Functions in between

Why’s it different?

- It makes cross-context communication as simple as RPC-style function calls, that are fully typed
- And you can pass and/or return Promises and Async Functions in between
Shu (@shuding_) 's Twitter Profile Photo

Made `nstr` — Stringify numbers in JavaScript with smart precision detection. No more ugly precision issues in your UI: 𝚌𝚘𝚗𝚜𝚝 𝚙𝚛𝚒𝚌𝚎 = 𝟷𝟿.𝟿, 𝚛𝚊𝚝𝚎 = 𝟷𝟶𝟶 𝚛𝚎𝚝𝚞𝚛𝚗 <𝚜𝚙𝚊𝚗>${𝚙𝚛𝚒𝚌𝚎 * 𝚛𝚊𝚝𝚎}</𝚜𝚙𝚊𝚗> Shows: $1989.9999999999998 instead of $1990 😱

Guillermo Rauch (@rauchg) 's Twitter Profile Photo

I’ve been working at Vercel for 10 years 🎉 it’s been the journey of a lifetime to serve developers & the internet every day. Here’s to the next 100 ▲

Shu (@shuding_) 's Twitter Profile Photo

UI paradox: good component libs are actually bad because everyone is using them. Joking aside, a while ago I landed some huge perf boost to the shader of cobe.vercel.app that will 2~10x its FPS: github.com/shuding/cobe/p…

Shu (@shuding_) 's Twitter Profile Photo

True but worth noting that the only thing I dislike about this pattern is that it takes 2 render passes to SSR, which breaks the assumption of “hooks are stateless/no-ops on the server”. That assumption can be very useful. On a server bundle build, the compiler can optimize

Shu (@shuding_) 's Twitter Profile Photo

Why does it have to be compiler magic? Think about this React component (pseudo): function UserSignup(email) { const step1 = useMemo(() => queueStep('createUser', email)) const user = use(resolveIfStepDone(step1)) const step2 = useMemo(() => queueStep('sendWelcomeEmail',

Shu (@shuding_) 's Twitter Profile Photo

Austin Malerba It’s extremely expressive and clear because it’s JavaScript. Same reason that JSX won over templates. Configs like “repeat: Y hours” are ambiguous, you don’t know what it does exactly without looking at the docs: - repeat{ await X(); await sleep(Y) } - repeat{ await sleep(Y);