Another way to achieve this is to use Node.js server in front of Elixir back-end.
When browser request for index page just returns a fully rendered string, the fetching data just from Elixir back-end. Use isomorphic fetch to make sure the components are also executing well in the Node server. All the API will be called from the browser directly goes to Elixir back-end through Nginx or Ingress etc.
If you are using GraphQL there’s a term named schema stitching, which let you merge back-end schema to the current server.


















