1. A method for generating a customized web application on a client device, the method comprising: (a) receiving on a client device, through a user interface of the client device, a command to access a website hosted on a first server; (b) after receiving the command, sending a first request to access the website from the client device to a second server, the second server comprising a memory storing customization code, wherein said customization code includes one or more instructions for customizing one or more features of the website for use on the client device and wherein the customization code comprises (i) instructions for identifying which of a plurality of widgets that are stored on the client device are to be used in the one or more instructions for customizing one or more features of the website, (ii) instructions for laying out the widgets on the user interface of the client device, and (iii) instructions for requesting website content from the website and mapping the website content received from the website onto the user interface of the client device; (c) after sending the first request, receiving the customization code, on the client device, from the second server; (d) after receiving the customization code, sending a second request directly to the first server, from the client device, for the website content, without using the second server to make the second request, the second request being specified by the customization code; (e) after sending the second request, receiving the website content directly on the client device without using the second server; (f) customizing the website content on the client device in accordance with the one or more instructions in the customization code, thereby constructing said customized web application on the client device, wherein the customizing step (f) comprises (i) incorporating the widgets in the plurality of widgets, which are identified by the customization code, into the customized web application, (ii) laying out the identified widgets on the user interface of the client device as specified in the customization code and (iii) mapping the website content received from the website onto the user interface of the client device as specified in the customization code; and (g) operating said customized web application through the user interface of the client device.