Scandere.
All articles

Next 16, Tailwind 4 and React Three Fiber: what really changes

October 7, 2026 · 3 min read

I rebuilt this portfolio with Next 16.4, React 19.3, Tailwind 4.3 and Three 0.186. Here is what cost me time, so you do not have to lose it too.

middleware becomes proxy

The middleware.ts file is now called proxy.ts. The next-intl documentation says the same for its language routing.

next lint is gone

Linting goes through ESLint directly, with eslint-config-next. Another trap: typescript-eslint does not support TypeScript 7 yet, so I pinned TypeScript 6 to keep the lint running.

Tailwind 4: the config moves into the CSS

No more tailwind.config.js: colors and fonts are declared in an @theme block. A font variable cannot reference itself, so the next/font one needs a different name.

drei's Html component and its errors

My 3D labels used drei's Html. Each label creates its own React root, which produced 16 unmount errors in the console. I replaced them with DOM elements placed by projecting the 3D points onto the screen.

Next article

A 3D hero that does not break on mobile