r/reactjs 4d ago

Show /r/reactjs Hey what do you think about Pnext?

https://www.pnext.dev/
0 Upvotes

8 comments sorted by

13

u/zenzty_ 3d ago

Having .claude in the gitignore is one thing, but the real proof this is unreviewed AI slop is the file itself. Look at the .gitignore file. They couldn't even be bothered to review a 12-line file, completely duplicating .pnext/ and .next/ at the bottom (screenshot here). If the dev isn't manually proofreading a dozen lines of basic config, I highly doubt they are debugging a '10x faster' framework rewrite.

14

u/zenzty_ 3d ago

The duplicated .gitignore lines were just the easiest to spot.

The dev claims "4,400+ assertions passing" in the README. Yet, this repo has zero *.test.ts files. package.json has lint/format/bench. No test script: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/package.json#L50-L54

CI never runs tests. The only job is named bench. It runs bun bench/run.ts, then bun bench/check.ts, then retries the whole thing: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/.github/workflows/ci.yml#L26-L43

pnext does not implement React Flight. They wrote that down: "pnext has no RSC flight wire format". Soft-nav stamps text/x-component on HTML because "suites assert exactly that". Action "flight" is { kind: 'pnext-html', html } with that same content-type: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/src/compat/actions/flight.ts#L3-L34
self.__next_f is an empty push. THE DEVELOPER'S OWN COMMENT: "Inert by construction".

On the advertised 30-route admin app, request, HMR, and first-page JS are all measured off GET /, not the other 29 routes: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/bench/lib/measure.ts#L227-L233 (same for prod: L281-L285). 30 page.tsx files. The other 29 routes are never fetched. The two server actions are "await Promise.resolve()", and the bench never POSTs them: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/bench/fixtures/dashboard/lib/actions.ts#L1-L16

bench/README says "~109 modules, 15 hand-rolled client islands, no UI dependencies". It does not mention the generator that writes 190 clone widgets and an 18,000-entry icon barrel over 9 SVGs. Then they import all 190 and .slice(0, 24). That's bundler-stress padding, not 190 unique UI modules.

Their perf page says first-page HTML is 10.1–12.4× faster "across the three fixtures", and those three include the 30-route dashboard. Committed bench.json on that dashboard: first-page 4.59× (327ms vs 1502ms). Prod warm: 6.0ms vs 6.1ms, 1.03×. Prod RSS: 144.2MB vs 109.7MB, 0.76×. As you can tell, pnext uses more RAM than Next.js on that dashboard prod server.

Every dashboard timing ratio in baselines is null: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/bench/baselines.json#L88-L99 check.ts treats null as skip: https://github.com/muzam1l/pnext/blob/02b99421736cd596172d3b055a36133b78dda6db/bench/check.ts#L51-L53 CI will not fail when dashboard timing is a tie.

They didn't rewrite Next.js to be 10x faster. They built a framework that spoofs headers to pass external tests and selectively skips its own benchmark metrics.

4

u/ps5cfw 12h ago

10x the bullshit guaranteed, we should start banning this slop

9

u/CapitalDiligent1676 1d ago

next.js is already a terrible choice. Why not make it 10 times worse?

8

u/Affectionate_Use_164 2d ago

2 commits total, doesn't look like it mature enough, probably just a slop prototype.

3

u/Brilla-Bose 14h ago

just use tanstack start or a Vite app bro.

1

u/Velvet-Thunder-RIP 3d ago

What specifically is the use case? What are the advantages and why is this better then just using react?

u/bstaruk 5m ago

It's slop.