We are using reactjs a popular frontend library to create the user interface.
We are also using redux in conjunction with react-redux to manage state more effectively. For redux we have create some custom middleware to log users out on http errors (such as error 401, unauthorized). We also have a middleware that automatically calls the backend and redux actions depending on the servers response. See more here.
For deploying the frontend we used surge.sh. Surge hosts static html files for free with a custom url (we have to pay for the custom url). Surge also handles caching and creates a cdn for us. This makes the site faster to load.
To deploy the app to surge run npm run deploy