Vincent Chan
storyway.win
Vincent Chan
@storyway.win
Reposted by Vincent Chan
the funniest thing about "this is not AI, this is machine learning and it's good!!!" replies is that ML is a subfield of the broader AI field, and the disliked "AI" is a product of that exact subfield
December 18, 2025 at 5:40 AM
Reposted by Vincent Chan
in case you missed it: yesterday i wrote about a new open source tool i made, called RSC Explorer.

it lets you interactively step through how the React Server Components protocol works directly in the browser — no server needed.
December 19, 2025 at 7:10 AM
Reposted by Vincent Chan
thanks to claude code i might actually ship the thing i wanted to make back in 2021 but didn't have the patience for. incredible time for people with vision and skill but low execution velocity
December 22, 2025 at 3:02 PM
Reposted by Vincent Chan
since there's much interest in the RSC protocol, i made a little debugger tool that runs entirely in the browser (no server).

would anyone find it useful?
December 13, 2025 at 11:18 AM
Reposted by Vincent Chan
RSC Playground
rsc-playground.pages.dev
December 14, 2025 at 1:19 PM
Reposted by Vincent Chan
deployed big update to rsc-playground.pages.dev

lots of bugfixes and a few new examples.

this basically works now! i'll open source a bit later
December 15, 2025 at 8:08 PM
Reposted by Vincent Chan
RSC Explorer is now open source! tangled.org/danabra.mov/...
danabra.mov/rscexplorer
A tool for people curious about the React Server Components protocol
tangled.org
December 16, 2025 at 10:00 AM
Reposted by Vincent Chan
cool news, sidetrail.app is now open source on @tangled.org!

the stack:

- atproto (jetstream + new lex client)
- next 16 + cacheComponents (yes, a recent version)
- postgres + drizzle, redis
- vitest
danabra.mov/sidetrail
an app to share curated trails
tangled.org
December 5, 2025 at 7:24 PM
Reposted by Vincent Chan
i finally fixed caching! (i think)

did -> handle, handle -> did, and did -> avatar lookups should all be getting cached in redis now which should considerably speed up navigations and stop 1s+ load times on some pages

cause was fun: github.com/vercel/next....
Docs: [Cache Components] "use cache" pitfalls with map() · Issue #86896 · vercel/next.js
What is the documentation issue? Here's a fix I'm going to deploy now: const resolveDidToHandle = cache(async function resolveDidToHandle(did: string): Promise<string> { "use cache: redis"; tagDid(...
github.com
December 6, 2025 at 9:22 AM
Reposted by Vincent Chan
Use the standard Node.js "imports" field instead of TypeScript aliases:
December 4, 2025 at 5:11 PM
Reposted by Vincent Chan
x.com/panchito built a _really_ slick looking Github file viewer clone that fully uses RSCs and new React features, as well as making smart use of modern CSS. Great writeup on the implementation:

wtbb.vercel.app

I tried browsing the React repo example and it's _fast_! Really impressive!
Without the blue bar
a github clone with NextJS 16 and cache components
wtbb.vercel.app
December 4, 2025 at 8:39 PM
Reposted by Vincent Chan
cache components is very very fun to play with. i'm a big fan.

one thing i'm not sure about is whether to place "use cache" closer to the data layer (particular queries) or ui layer (particular component trees). obviously could do both but i wonder which pattern i'll gravitate towards
December 2, 2025 at 7:06 PM
Reposted by Vincent Chan
maybe not the best moment for it but i finally condensed my “why react server components” into a short blurb that does well on HN
December 4, 2025 at 9:08 AM
Reposted by Vincent Chan
spent the last day fighting a gnarly issue (bug?) in how Next 16 Cache Components interact with atproto OAuth flow (cc @matthieu.bsky.team). might be a Next bug or not, anyway i filed github.com/vercel/next....
Cache Components causes fetch to hang · Issue #86662 · vercel/next.js
Link to the code that reproduces this issue https://github.com/gaearon/next-bug-repro To Reproduce Start https://github.com/gaearon/next-bug-repro Open http://localhost:3000/ Current vs. Expected b...
github.com
November 30, 2025 at 9:16 AM
Reposted by Vincent Chan
this page has gotten much better recently, excited to dig into these patterns now that they're well-explained
Getting Started: Cache Components | Next.js
Learn how to use Cache Components and combine the benefits of static and dynamic rendering.
nextjs.org
November 18, 2025 at 5:22 PM
Reposted by Vincent Chan
found a bit surprising to hear some people consider applying to both startups and big companies at the same time a red flag.

imo if you already have a range of experience and have seen both, it’s totally fine to be open to both kind of setups (and even more exotic ones)
November 21, 2025 at 12:09 PM
Reposted by Vincent Chan
apparently clicking links from console.error doesn't work anymore in chrome... on some sites. but it works on others

what the hell. is there a crbug for this?
November 22, 2025 at 10:24 AM
Reposted by Vincent Chan
using Cache Components break my brain a bit...

how do i pass "we're logged in/out" to the client-side part of the app without adding Suspense boundaries on top?

knowing this requires reading cookies(), but reading cookies() outside <Suspense> warns. but i also don't want a top-level <Suspense>
November 26, 2025 at 11:41 AM
Reposted by Vincent Chan
does "use cache" automatically include cache() in-request deduplication? if yes, is there any downside to basically always writing "use cache: private" instead of manual cache() wrapping? considering "use cache: private" has no other server effect
November 26, 2025 at 6:23 PM
Reposted by Vincent Chan
fantastic explanation by @storyhb.com, also maybe first example i remember of a feature being more immediately useful (in a sense) self-hosted compared to serverless/vercel
Next 16.0: "Use cache" is ignored in dynamic routes · Issue #85240 · vercel/next.js
Link to the code that reproduces this issue https://github.com/leo-cheron/next16-cache To Reproduce Create a Next.js 16 app with dynamic routes (e.g., app/[locale]/page.tsx) File: app/[locale]/page...
github.com
November 26, 2025 at 6:41 PM
Reposted by Vincent Chan
it would be nice if cacheComponents had a verbose mode where it logs every cache hit/miss together with the key.

i know you can do something like that by writing your own handlers but i don't want to write any code, i just want a debugging tool
November 26, 2025 at 6:50 PM
Reposted by Vincent Chan
is there a tldr somewhere on how to make mutations reflect latest state in Next.js

should i

- revalidatePage/revalidateTag in every server action
- or should i router.refresh next to their calls
- both?

i haven't tried cacheComponents yet so curious how to work with the existing model
October 26, 2025 at 5:26 AM
Reposted by Vincent Chan
there should be a way to work for 20 companies at once and rotate them like once a month so you don’t get bored
October 26, 2025 at 8:44 AM
Reposted by Vincent Chan
aargh someone kill me. literally THE WHOLE POINT of directives is that they’re not just strings!

they’re syntactically attached to the scope (function or module) in a way that’s reflected in AST.

and both RSC and Next.js ones act at module boundary which is kinda gross for decorators or API calls
October 29, 2025 at 10:21 PM
Reposted by Vincent Chan
i'm running a Next.js app on Railway behind CF proxy.

i've never done backend in my life before. what do i need to know? i mean stuff like

- observability
- what to do if someone ddos's me
- deployment versioning
- cache hits, revalidation, whatever

any lessons i don't want to learn hard way?
October 25, 2025 at 11:19 AM