I recently migrated 2 projects away from Next.js to Vite. It was a lot of work, Next.JS handles quite a lot of stuff: translations, authentication, bundling, css stuff, caching... But it was very much worth it for lowering my daily infuration. I don't think I'll be using NextJS again if I don't have to.

In what way does Next.js handle translations or authentication? It doesn't prescribe or even do much to simplify either of those things.

Well you have next-i18next and NextAuth.js, those integrations with Next.js help for getting something running quickly.