I agree with this weird mismatch of overcomplexity for the problem it's trying to solve. I did really like though the Gatsby model of ingesting all your source data into GraphQL and then having a standardised way to query and build pages from this. I wish Next.js would learn something from this.
I was using Next.js to build a staticly-generated website (so within the remit of Gatsby) but eventually i outgrew the limitations of static site generation (23k pages and counting...) it was so easy to switch to a traditional server-generated model with Next.js. I'm incredibly greatful for picking up and sticking with Next.js for this.