Web browsers define increasingly rich APIs for networking, multimedia, and local storage. This is good in the sense that web applications can now approach the sophistication of traditional desktop applications. Unfortunately, in the race to add new browser features, discussions about clean interface design are often relegated to second-class status. The result is browsers that are difficult to make robust, secure, and performant. Browsers execute so many important applications, and expose so much complex functionality, that they should be treated as operating systems. I will discuss the implications of this claim, using case studies to motivate some core abstractions that browsers should export. I will then describe how an exokernel browser architecture can provide excellent backwards compatibility with current web applications, while providing faster performance, better security, and a more sane programming API.