How would you architect a single-page application from scratch using Angular, ensuring proper state management and performance?