If nothing else, Deno certainly kept Node.js on its toes. We have package to single binary, module and process security policies, native fetch. Not sure if these would have been implemented without some competition.
I decided to not convert to Google Analytics 4 because I used it as a glorified visitor count. I opted for a websocket to measure active users, the page they are on and some basic hourly peak and total user count split out over logged in and anonymous visits.
It's worse. For a 16 vCPU + 32GB RAM + 20TB traffic (fly.io has max 8 vCPU) I would pay around $750 on fly.io instead of €30 on Hetzner. People are willing to pay a lot for I guess an easy deploy story ?
I think this has more todo with ad-hoc programing without any guide lines than something inherent to Next.js. If you adopt a basic folder structure to place models, interfaces, routes and what not in, I don't see how things can become super messy. Using Typescript can help to more easily navigate the code base.