Here are a few things I would personally like to see done Installer.app. I feel that these sort of changes could really help the interface and functionality of our favorite app manager. Please discuss and give some feedback, and of course, more suggestions are welcome. 1.) Application Database Rather than downloading a list of applications with hard-coded structure (categories, names, descriptions, etc...) from each repository, a database system would operate much more efficiently. Installer.app could instead download a list of available applications on each repository and integrate each application with a local database. This would allow for such useful features as Search, Tagging, and Tree-Structured Lists. The current system creates a bulky list of categories and applications since it tries to integrate the various structure-schemes that different repositories utilize. With a database, each application could be stored by itself with a name, filesize, version number, hash, description, tags, creator name, contact, and website, and originating repository. Installer could use this information to locate duplicate applications from multiple repositories as well as compensate for out of date repositories hosting older application versions. Then when the user looks at the list of applications, Installer.app could have several view-modes based on different criteria: firmware, application type, date, tag, repository, or search. 2.) Tags In addition to application descriptions, tags could provide most accurate results for a Search function. If different repositories use different tags for the same program (which can be checked with the hash) Installer.app could just integrate all the tags together to improve the search results. 3.) Search Searching is important for obvious reasons. A Search function could be based off of application names, tags, descriptions, and version numbers, and be implemented quite effortlessly if Installer.app adopts a database-managed system. 4.) Repository Dependency Check (Upon Uninstallation) It would be useful, at least for me, if when removing a repository if Installer.app checked to see if any currently installed applications depended on that repository solely, and prompt the user to continue or abort. This would keep "phantom" applications to a minimum (applications still installed with no repository to update them.) 5.) Import Manually Installed Applications I'd like to see a feature in Installer.app that detects manually installed applications (copied over SSH manually or through whatever method), checks the application against currently used repositories, and allow the user to manually integrate it into Installer.app if no source is found. Here is an example situation: I have copied the program iFuzzBall to my applications folder over SSH. The next time I run Installer.app, it detects the new program, and prompts: Installer would take the name and size of the program (as well as any other distinguishing elements to the program) and attempt to find a match from the listed repositories. One of two things could happen: 1.) Installer finds some possible matches (iFuzzBall, iBall, and BallFuzz), and prompts the user to select which application it is. Installer then adds the application to the database allowing the user to check for updates, uninstall, and otherwise treat it as another program on the list. 2.) Installer doesn't find a match, and allows the user to manually enter the name, version, tags, description, and creator information. Installer can be set to check for matches in the future, but at the least allows the user to uninstall the application through Installer. 6.) List Source Repositories This one is a small feature, but with each application I would like to see an extra field that lets me know which repositories have listed the particular application I am looking at. There have been many times when I have wondered which repository a particular application came from, and whether or not I could remove a superfluous repo. This is all I can think of at the moment. I'll add more if I come up with any or if I see some good ideas in replies. I'll try to get around to drawing up some diagrams to illustrate the concepts or show example screenshots.