I think because the answer here is using Next.js with hosted backend solutions like Firebase, Supabase, Pusher, etc.
If I have to use:
1) Pusher for realtime
2) Supabase for DB
3) Temporal for workflows
4) Vercel / Netlify, etc. for functions / cron jobs
My backend becomes primarily a bunch of stuff glued together, rather than something cohesive like Next.js
I'd do the exact opposite by default, trying to have the most cohesive service, and occasionnaly use some external APIs when I can't do the stuff by myself (eg. Stripe)