* Next.js - React on the frontend with endpoints handled by Next.js.
* Postgres for the DB
* Hosted on Vercel (unless otherwise specified).
* S3 for binary files.
If the project scope was anything past what Next.js APIs can reasonable handle (heavy DB migrations required, an admin panel, etc), I'd go with:
* Django Rest (or Django Graphene for GraphQL if it's a better fit) on the backend.
* React on the frontend (possibly still with Next.js if server-side rendering is high priority).
* Postgres for the DB.
* Frontend hosted on Netlify or Vercel.
* Backend hosted on Elastic Beanstalk, DB hosted on AWS Aurora, and S3 for binary files.
Likewise, if you are concerned about mobile usage, that has nothing to do with the stack - you can code responsive design and accessible markup on any stack.
How did you check that assumption?
>What tech stack would you recommend for a single-page web application in this case?
Does the stack to be used represent the innovation itself? Are you doing this in order to learn a new stack (i.e: a fun project where the objective is learning about single page application stacks)? If not, I'd disregard that and go with the stack I'm most productive with to solve the actual problem at hand and deliver value.
If it's a simple static site just use S3 static hosting and the language of your choice (maybe Angular).