Sure. The stack on the frontend is Backbone.js with Handlebars.js templates (and jQuery, of course). I used CoffeeScript's classes heavily to compartmentalize stuff.
Object orientation is your friend with these kinds of tools. We based a bit of the internal component model off of Java's AWT and Swing, making sure that each component we built was reusable in any situation, making it extremely easy to add new components.
Just like in the DOM, you are performing operations on a tree structure, so recursion and iterative optimization is important (especially in Javascript where function calls are expensive).
Other than that, it's just a lot of event handling and DOM manipulation.
Object orientation is your friend with these kinds of tools. We based a bit of the internal component model off of Java's AWT and Swing, making sure that each component we built was reusable in any situation, making it extremely easy to add new components.
Just like in the DOM, you are performing operations on a tree structure, so recursion and iterative optimization is important (especially in Javascript where function calls are expensive).
Other than that, it's just a lot of event handling and DOM manipulation.