
That cost - and what I’ll talk about next - is why Thunderbird has accumulated an enormous amount of “technical debt” to pay off. Keeping up with the upstream changes is not a simple task, and on some occasions it takes up most of our days. So, you can imagine how many times per week things suddenly break in Thunderbird because a C++ interface was renamed, or an API was deprecated, or a building library was upgraded. Firefox has hundreds of developers constantly changing and improving things on a daily basis. Keep in mind that Thunderbird is currently being actively developed by a bit more than a dozen core developers.

Unfortunately, this approach comes with a hefty cost. Using a solid base architecture like Firefox is the perfect starting point. Obviously there’s more complexity to it, including a lot of C++, JS, CSS, and XHTML to ensure everything works properly.


In doing so, Thunderbird can tag along Firefox for their release cycle, inherit security patches, benefit from extensions support, and much more. Things like cross-platform support, the Gecko web renderer, the Spidermonkey JavaScript compiler, and so on. We love using Firefox as our base architecture, because it leverages all the very good stuff within. All the tabs and sections you see in our applications are just browser tabs with a custom user interface.
#Firefox thunderbird email client code
Thunderbird is literally a bunch of code running on top of Firefox. Why? Because the original pieces don’t fit anymore. Then, once you reach that center piece, you replace it, and then add back the pieces you removed with slightly different pieces. This means you have to slowly remove the blocks above it to keep the tower from collapsing. If you replace just that piece, the whole tower will crumble. But years later, you realize the crucial center piece serving as the foundation is using the wrong shape. Making major changes - as we’re doing with Supernova - requires very careful consideration.Īs you’re reading this, it might help to imagine Thunderbird as an enormous Lego tower you’ve built. Thunderbird is a monolithic application that has been developed by thousands of people over the course of two decades. What’s all this stuff about “technical debt?” Why does it need to be rebuilt? Let’s talk about how we got here, and shed some light on the the complicated history of Thunderbird’s development. Thunderbird: An Old, Fragile LEGO Tower Photo by Mourizal Zativa on Unsplash Inside those objectives there are hundreds of very large steps that need to happen, and achieving everything will require a lot of time and resources.
