Sign in

Tim Neutkens

@timneutkens.bsky.social
3.1K followers 43 following 57 posts

Next.js lead at Vercel, co-author of Next.js, MDX, Micro, and ncc. Opinions are my own.

PostsRepliesMedia
Tim Neutkens @timneutkens.bsky.social · 17/07/2026
It's been the default since Next.js 16 (October last year). It's stable. Passes all 16.388 Next.js tests down to the smallest details. Turbopack is used by 93% of Next.js 16 applications.
170
Tim Neutkens @timneutkens.bsky.social · 26/06/2026
If you read through the 16.3 blogpost what you'll see is that the new stuff all builds on existing features, it's extra guidance, not specifically you have to change your code. So *exactly* what you're asking for 🙂
030
Tim Neutkens @timneutkens.bsky.social · 26/06/2026
We're continuously making under the hood improvements. We have to balance improvements with a *massive* amount of existing applications. cacheComponents will be the default in the future, there's small differences in behavior which is why you have to opt-in currently.
130
Tim Neutkens @timneutkens.bsky.social · 17/06/2026
That's not Next.js. Looks like Vite or CRA. Next.js doesn't have an `assets` dir.
130
Tim Neutkens @timneutkens.bsky.social · 19/03/2026
I'm working on switching webstreams to Node.js streams in Next.js which removes most of the overhead and increases RPS by a lot. Webstreams have a lot of overhead, the only reason we used them is to support edge runtime as well. Splitting implementations now.
000
Tim Neutkens @timneutkens.bsky.social · 19/03/2026
It's clear that most people don't understand the numbers in the table and it leads to making wrong conclusions and having wrong assumptions which is quite unfortunate. I gave that feedback to Matteo yesterday 🙂
100
Tim Neutkens @timneutkens.bsky.social · 19/03/2026
Because the benchmark is set to run over 1K RPS regardless requests start failing the "average latency" goes up, it does not mean rendering takes that amount of time. It renders in similar time in the benchmark app across the different frameworks. None is "2x faster". It's all React rendering.
100
Tim Neutkens @timneutkens.bsky.social · 19/03/2026
Seems you're misunderstanding this table. It's worth reading the related blogpost end-to-end. The only takeaway is: - Next.js does 700RPS - If you do more than 700RPS the benchmark app can't handle more right now, so requests start failing. Thus timing out.
100
Tim Neutkens @timneutkens.bsky.social · 17/03/2026
Replied here: x.com/timneutkens/...
x.com
112
Tim Neutkens @timneutkens.bsky.social · 04/03/2026
No. It works by default, the default is using Turbopack. You explicitly opted into webpack in your application 🙂
210
Tim Neutkens @timneutkens.bsky.social · 04/03/2026
It's using webpack which has different limitations 🙂 By default Next.js uses Turbopack. webpack is opt-in only for backwards compat
110
Tim Neutkens @timneutkens.bsky.social · 04/03/2026
Please correct the record / delete the incorrect information 🙂
020
Tim Neutkens @timneutkens.bsky.social · 04/03/2026
Proof that the icon import you showed works as-is: 8rrzh7-3000.csb.app Sandbox: codesandbox.io/p/devbox/8rr... And screenshot:
010
Tim Neutkens @timneutkens.bsky.social · 04/03/2026
This is not true. You can import .css files anywhere in Next.js with App Router.
330
Tim Neutkens @timneutkens.bsky.social · 23/02/2026
The Tailwind loader works in Turbopack 😄 That's what I created it for in the first place.
120
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
The image will be used to create a false narrative, and you now know the image is incorrect. Best thing you can do at this point is fix the mistake instead of letting it get out there.
110
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
I'd recommend deleting and starting over with a new thread without results, it only has 12 likes so far. Enough room to correct the record at this point. Otherwise you'll be undermining your own work / credibility of the work, which is the opposite of what you want.
000
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
Happy to join. If the first interaction with framework authors is spreading charts that are wrong you're not setting yourself up for success here. Hurts your credibility a lot. We already have to deal with enough misinformation being posted.
120
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
I'm expecting the original post will be deleted? Now that you know it's inaccurately showing frameworks performance.
000
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
It's very disappointing that you end up sharing numbers you know are not final yet. They will be misused to create a false narrative.
200
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
Before working on anything else I'd highly recommend first making sure that the results are actually correct, because the current setup is not as evidenced by my PR. Check with framework authors first.
000
Tim Neutkens @timneutkens.bsky.social · 09/02/2026
Hey Alexander, The comparison is not doing the same work and added additional overhead in the Next.js implementation. I'm disappointed you did not reach out to verify these before just sharing such results on social media. You know full well people will misuse these. PR: github.com/e18e/framewo...
github.com
Fix Next.js app to match other frameworks by timneutkens · Pull Request #94 · e18e/framework-tracker
This is why it's so important to not share benchmark results on social media without verifying you did set up the apps to be a correct comparison of the same application. You set it up to do mo...
120
Tim Neutkens @timneutkens.bsky.social · 27/10/2025
Following up here
000
Tim Neutkens @timneutkens.bsky.social · 24/10/2025
Why?
110
Reposted by Tim Neutkens
Next.js @nextjs.org · 22/10/2025
Next.js 16 • Cache Components • Turbopack enabled by default • Turbopack file system caching (beta) • Optimized navigations and prefetching • Improved caching APIs • Build Adapters API (alpha) • React 19.2 nextjs.org/blog/next-16
36516
Tim Neutkens @timneutkens.bsky.social · 20/10/2025
There hasn’t been many new bundlers 😄 proving that it works at the scale of large Next.js applications is important to us 👍
100
Tim Neutkens @timneutkens.bsky.social · 20/10/2025
What packages are you using?
120
Tim Neutkens @timneutkens.bsky.social · 19/10/2025
Because we decided to focus on Next.js applications first. There will be a more generic API to use the bundler in the future.
120
Tim Neutkens @timneutkens.bsky.social · 14/10/2025
Maybe there is a lockfile at multiple levels in the monorepo incorrectly, which makes automatic root detection detect the application directory as the root. More info in these docs: nextjs.org/docs/app/api...
nextjs.org
next.config.js: turbopack | Next.js
Configure Next.js with Turbopack-specific options
110
Tim Neutkens @timneutkens.bsky.social · 09/07/2025
Thank you!
030
Tim Neutkens @timneutkens.bsky.social · 09/07/2025
Saying "be honest" claims I'm lying. I'm not lying. Everything you're bringing up so far is stuff outside of our control that we're somehow getting blamed for by you "Not using Unjs" "Not using Vite" "The React docs". We maybe made decisions you personally don't like, that's different than evil.
110
Tim Neutkens @timneutkens.bsky.social · 09/07/2025
We have no control over what the React team at Meta recommends in their documentation. There is no conspiracy. It's really weird for you to claim that because we did not contribute to one project (i.e. unjs) we're somehow "hostile"? We contribute to many other projects that help everyone.
210
Tim Neutkens @timneutkens.bsky.social · 08/07/2025
We live in a time where I couldn’t be happier about web tooling. A time of optimizing what came before, and everyone building for the web wins. We want the web to win. That includes people building with Nuxt / Nitro / Vite.
040
Tim Neutkens @timneutkens.bsky.social · 08/07/2025
Somehow people assume that because we don’t use Vite in Next.js that we believe it’s bad. This is just not the case. It’s a good tool, it just wasn’t the tool for us to build Next.js. We had different requirements. It’s good for other things.
130
Tim Neutkens @timneutkens.bsky.social · 08/07/2025
Choosing a different bundler because it doesn’t fit our needs is far from stubborn. The web benefits from variety of tools. You could always host Next.js yourself, just like Nuxt: next build -> next start. We’re also working with Netlify Cloudflare and others on adapters.
120
Tim Neutkens @timneutkens.bsky.social · 13/05/2025
Yeah so far it's better in terms of bots here, except that on the other side bluesky engagement is reposted 😆 Hope you have a good day!
020
Tim Neutkens @timneutkens.bsky.social · 13/05/2025
Like I said before, it's not about you. It's about in general. I have to deal with bots posting random engagement bait based on other people's tweets 🙂 Hope you can understand that.
120
Tim Neutkens @timneutkens.bsky.social · 13/05/2025
Also I did not even say you were spreading fake news. I said "this is how fake news is spread" which is very different than claiming what you in particular said is fake news. Again, you're okay 🙏 Have a good day!
100
Tim Neutkens @timneutkens.bsky.social · 13/05/2025
You're reading way too much into this. Like I said I don't think you intended harm at all. There's a reason you deleted the post. That's totally okay. No hard feelings. I'm guessing you think I'm mad at you? I'm not.
100
Tim Neutkens @timneutkens.bsky.social · 13/05/2025
You shared Next.js / Turbopack DX is terrible. Which wasn’t the case. So fake news 🙂
100
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
Gotcha. I’m sure you mean well but this is quite unfortunate. This is how fake news is spread.
110
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
nextjs.org/docs/app/gui... You can follow this to run the Node.js devtools, then go to the performance tab and capture a CPU profile, works the same way as browser CPU profile. Will show you exactly why the request was slow
nextjs.org
Guides: Debugging | Next.js
Learn how to debug your Next.js application with VS Code, Chrome DevTools, or Firefox DevTools.
010
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
`generateStaticParams` even runs async and doesn't block requests. Worth for you grabbing a Node.js CPU profile here I think. Feel free to send one over so I can take a look.
100
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
Until the "✓ Compiled / in 11ms" is with revalidate+force-static. After that it's without anything added. As you can see it's the same time for both. Had the page do a fetch to an external url.
200
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
Are you using `generateStaticParams` when adding `revalidate`? If so it'll run `generateStaticParams` each request to a route that matches.
100
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
And you're dynamically rendering markdown?
100
Tim Neutkens @timneutkens.bsky.social · 12/05/2025
In the screenshot the part of Turbopack is the `Compiled X in Yms`. The rest is individual requests unrelated to Turbopack. So it's not Turbopack but can have a look at ISR in your app. Is this for www.openstatus.dev or something else?
200
Tim Neutkens @timneutkens.bsky.social · 10/04/2025
Proud of the Turbopack team. This is a big milestone that we've been working towards since Next.js 15 was released. Now on towards `next build --turbopack` stable. 5/5
050
Tim Neutkens @timneutkens.bsky.social · 10/04/2025
Performance Improvements: As we get more real-world data we'll be able to optimize further, Turbopack will get faster over time as we identify common patterns across more applications. 4/5
140
Tim Neutkens @timneutkens.bsky.social · 10/04/2025
Persistent Caching: We're in the process of dogfooding disk caching at Vercel to catch edge cases, once these edge cases have been resolved you'll be able to try it out. GitHub Issues: Focus on fixing feedback from early adopters. 3/5
120