A non-transitory computer-readable storage medium including instructions that, when executed by a processing device of a computing device, cause the processing device to:
- receive, by the computing device, a first request to access a first component of a web application from a client device, wherein the computing device is different than the client device;
- route the client device to a first virtual environment where the first component of the web application is located in view of the first request, wherein the first virtual environment uses a first runtime environment, and wherein the first component comprises a first set of graphical features from a library comprising a plurality of graphical features having a visual appearance of the web application;
- provide, to the client device, a first graphical user interface (GUI) for the first component having a visual appearance of the web application using the first set of graphical features from the library;
- receive a second request to add a second component to the web application;
- and
- generate, by the processing device, a second virtual environment that uses a second runtime environment to execute the second component;
- update state information in view of a first set of interactions between the client device and the first component of the web application and the generated second virtual environment;
- receive a third request to access a third component of the web application from the client device;
- route the client to a third virtual environment where the third component of the web application is located based on the third request, wherein the third virtual environment uses a third runtime environment and wherein the first runtime environment and the second runtime environment are different from the third runtime environment, and wherein the third component comprises a second set of graphical features from the library;
- provide, to the client device, a second GUI for the third component having the visual appearance of the web application using the second set of graphical features from the library, wherein the first set of graphical features and the second set of graphical features of the library provide a common visual styling for the first component and the third component, the common visual styling comprising one or more of the same fonts, menus, text, color scheme, images, and icons;
- provide the state information to the third component of the web application, wherein the state information comprises first data that is used by the third component of the web application for a second set of interactions between the client device and the third component of the web application, wherein the first and third virtual environments each comprise a virtual machine and the second virtual environment comprises a container, and wherein the state information is stored at the container of the second virtual environment, and wherein the container is a proxy component to direct the first request and the third request to the corresponding first component and the third component of the web application, and wherein the first component comprises a first programming language and the third component comprises a second programming language different from the first programming language, wherein the first runtime environment supports the first programming language and the third runtime environment support the second programming language and the first GUI and the second GUI present a common visual appearance for the first component in the first programming language and the third component in the second programming language via the common visual styling of the plurality of graphical features of the library;
- add a fourth component to the web application within a fourth virtual environment, wherein the fourth virtual environment comprises a third programming language different from the first programming language and the second programming language;
- and
- update the container of the second virtual environment to allow the fourth component to communicate with the first and third components, wherein the state information comprises information of the web application that is consistent across the first, second, and third components of the web application.