46. Our experience
• Reuse as much plumbing as possible
• Reuse as many UI parts as possible
• Use very few synchronous UI operations
• Reuse as many UI flows as possible
• Decompose into plugins
• Build for extensibility
• Don’t depend on internal code