1. A method implemented at least in part by a computing system, the method comprising: storing a default graphical user interface template, the default graphical user interface template comprising multiple customizable elements having default settings and capable of being customized by a user; storing a user-customized graphical user interface template in a repository of user-customized graphical user interface templates, the user-customized graphical user interface template comprising one or more customized elements that differ from the default graphical user interface template; receiving a rating provided by another user of the user-customized graphical user interface template; measuring popularity of the user-customized graphical user interface template in the repository of user-customized graphical user interface templates, the popularity based on the rating provided by the other user of the user-customized graphical user interface template; and automatically evolving the default graphical user interface template based, at least in part, on the popularity of the user-customized graphical user interface template, wherein automatically evolving comprises modifying the default graphical user interface template.