The idea is to have small, reusable, snippet-like blocks of code that ExpressionEngine designers can effortlessly reuse and share.
To have a mechanism to distribute these "gears" through Git version control and a control panel based gear directory.
Inspired by Ruby Gems and WordPress shortcodes.
Anybody could contribute a gear and add-on developers could bundle gears with their add-ons. A gear would be primarily two things:-
A manifest file which would describe what the gear does, how to use it, and so on.
One or more gear files, HTML which would essentially be what we write in ExpressionEngine templates. They would be able to access parameters in a similar way to embeds can.
Gears would allow developers to have DRY, modular code throughout their sites - an easy to maintain framework and help add-on users kick start their projects by using bundled starter gears. For example an eCommerce site might bundle a gear that shows a basket.
The gear manifest files for a bundled add-on could feasibly be compiled to form documentation for that add-on.
It would make sense for such a system to use name spacing so that different developers don't conflict with gears of the same name (which might happen for commonly used gears such as a button or login form).
One solution might be to have a folder structure such as
/gears/vendor_name/login/ to keep things sandboxed away from each other.
Let us know on Twitter @RyeAgency if you think this idea has legs.