Next.js jumped the shark with the app router. The page router, though it wasn't perfect, was a nice fit and was an extension of the React way (at the time) by handling the client-side well. You got routing and some ability to execute certain things on the server-side plus basic api support. For everything else you could use a full express backend or even other backend languages/stacks. But like with many things, simplicity could not be appreciated and now you have this mess. It's time for a better alternative.