One cool thing about working on a web framework is that the tools you use to build a feature might eventually adopt the feature itself. 5.5 years later, in this case.
It’s also fun how these exact patterns emerge at every layer of the stack. My work is a zillion layers of abstraction removed from processor architecture but I deal in all the same things.
computers are built on an absurd amount of cheating
> caches
> branch prediction
> speculative execution
> virtual memory
> out of order execution
and somehow the illusion holds
What's great about writing tests with 𝚒𝚗𝚜𝚝𝚊𝚗𝚝() is that it eliminates races. It verifies the structure of your app (Is the page cacheable? Is there a sufficient loading skeleton?) independent of network conditions.
But like a proper e2e test, it also doesn't rely on
Navigations in v0 got ~3.5× faster with Next.js 16.3.
An agent ran this loop on each slow nav:
1. Write a failing 𝚒𝚗𝚜𝚝𝚊𝚗𝚝() test
2. Apply a fix from the Skill
3. Re-run the test
4. Repeat 2–3 until it passes
nextjs.org/blog/making-v0…
Navigations in v0 got ~3.5× faster with Next.js 16.3.
An agent ran this loop on each slow nav:
1. Write a failing 𝚒𝚗𝚜𝚝𝚊𝚗𝚝() test
2. Apply a fix from the Skill
3. Re-run the test
4. Repeat 2–3 until it passes
nextjs.org/blog/making-v0…
I wish every test runner had this built in: gate a test behind a flag, and assert it fails if the flag is off.
I was unsure about it when I first added it to the React repo, but it's been a godsend (acdlite-send?) for iterating on experimental features github.com/facebook/react…