In the past couple of months, I've been learning more and more about the business of writing very customizable user interfaces for browser-based applications. To me the best system architecture is a strong model-view-controller architecture.
- The model is your business logic
- The controller is your user-interface navigation logic (screen to screen)
- The view is the user-interface presentation (including intrascreen navigation logic)