Systems, methods, and computer program products for displaying multiple applications on a graphical user interface (“GUI”) are provided. An application control system (“ACS”) may determine which applications should be displayed, and ACS may determine an optimal layout for the application on the GUI. ACS may move and/or resize the applications and automatically determine an optimal layout such that the applications substantially fill a portion of the GUI. Additionally, ACS may facilitate communication between the applications using an application programming interface (“API”). An application may obtain information from any other application on the GUI by transmitting requests via the API.