1. A computer-implemented method for organizing graphical user interface windows into separate stacks of windows, the method comprising: providing, for display, a first window in a graphical user interface of a web browser application, the web browser application comprising at least two defined constraints for distinguishing stacks of windows; receiving a request to display a second window in the graphical user interface when viewing the first window; moving the first window to a first stack in the graphical user interface in response to the request; and providing, for display, the second window in the graphical user interface in a second stack, wherein, in response to a request to display a third window in the graphical user interface, the third window is configured to be displayed in the first stack based on a defined constraint, from among the at least two defined constraints of the web browser application, shared between the third window and the first window or in the second stack based on a defined constraint, from among the at least two defined constraints of the web browser application, shared between the third window and the second window, and wherein the request to display the third window comprises an identification of the defined constraint shared between the third window and the first window or of the defined constraint shared between the third window and the second window.