Software is a compromise. Some parts are fantastic; others are lousy. The features you don't need are front and center, and the ones you're crying out for are nowhere to be found. You wish that button were a menu and that menu a button. It isn't perfect, but it's the best tool out there, quirks and all.
Firefox is built to be extensible so you don't have to settle. Unlike most software, Firefox isn't etched in stone. It's more like a collection of building blocks. We developers made the best design we could, but we invite you to move blocks around, remove them altogether, and even add your own. This flexibility is made possible through tiny applications called extensions, which you can install into Firefox.
The great thing about extensions is that they don't feel like extensions. Their features are integrated into the main Firefox interface as if they'd been there all along. Likewise, they can alter features that are already built in to Firefox. Extensions don't create a new, separate design; they work with the very blocks that Firefox is made of.
Of course, you don't have to make the extensions yourself. The Firefox development community has already created hundreds of them for you, and developers release new ones each day. (I describe ten of the best extensions in Chapter 22, so check it out for a more vivid sense of what extensions can do.) All you have to do is decide what your perfect browser looks like, and then mix and match the extensions that you want. What could be easier? This chapter shows you where to find great extensions, and how to start using them.