The graphic is misleading:
- You can easily do prerendering and asset packing in the frontend build step
- You don't need MVC on the backend
- You can use a third party for authorization
- Frontend can just be a React app
- VirtualDOM doesn't add any complexity in addition to the frontend View
- You don't need MVC on the frontend
- Frontend can fetch data from the API and cache it with cache-control header
The simplest setup is actually to host a React app from an S3 bucket and use Lambda / Cloud Functions to respond to network requests.