Developers and startup founders use the Mozilla toolkits to build apps for diverse uses including music and video playing.
They are four applications designed to serve different purposes: A web browser, a music player and organizer, another that does the same for video, and a word processor for screenwriters. Yet they share one thing in common: All were built with a Mozilla-based toolkit, either the Gecko Runtime Environment or its successor, XULRunner. Both toolkits use the same codebase which runs Firefox.
Like Firefox, these applications are free and their code are released under open source licenses. None is affiliated with the Mozilla Corporation. Each is backed by an organization that plans to make money through its software.
Among this group, Flock has gotten the most publicity. Essentially, it is an unofficial version of Firefox with features added to make interacting with social, media and blogging sites easier for the user. Copying the successful business model that has worked well for Mozilla through its Firefox web browser, Flock was designed to bring in referral revenue through its search box.
Celtx is a screenwriting tool and filmmaker’s pre-production suite. Its developers are working on several money-making angles. They are partnering with a film school, starting an online marketplace to cater to the needs of filmmakers, and licensing their server code.
“We took the approach of waiting to see who was using our technology before deciding what revenue models to employ. Now that we’ve grown to where we are, the revenue models are forming on their own,” says Greg Dawson, vice president of software production for Celtx.
Miro comes from a non-profit entity, the Participatory Culture Foundation, but its developers are also looking to make some cash. They recently launched a co-branding initiative as one way to financially sustain development of its video application, which helps the user find, download and watch video content on the internet.
Though there are other toolkits that the developers of these projects could have used, the very existence of the Mozilla libraries—and the positive reputation of Firefox itself, in fact—inspired many of them to create their application in the first place.
“We were inspired by Firefox. Firefox was a direct inspiration to Songbird,” says Rob Lord, CEO of Pioneers of the Inevitable, the team behind Songbird. Their Mozilla-based application is a mash-up of a web browser and music player, wrapped in a user interface that bears more than a resemblance to Apple iTunes’.
He elaborates: “A lot of things of the whole Mozilla approach we really liked: We liked the open source, open standards, open web approach. We liked the philosophy. We liked, from a product perspective, this was a rich internet application platform that was being tested by 80-to-100 million active users of Firefox.”
For the Flock team, building their “social web browser” with the Gecko Runtime Environment was a pragmatic decision. Trying to code a brand-new browser from the ground up — one that needed to be stable, standards-compliant and cross-platform — would have taken several years.
Clayton Stark is the vice-president of engineering for Flock, Inc.. “Other options were considered, yes, but Mozilla is the premiere provider of a truly open and free, cross-platform toolkit,” he says. “Building our app from scratch would negate all the benefits of the work being done to refine and augment both the technology and the community that keeps it rolling forward.”
The developers of Celtx chose to build with XULRunner because of this toolkit’s cross-platform nature. Mac computers are used extensively throughout the motion picture and media industry, as well as Linux systems for computer animation. So the Celtx team wanted their application to run identically on all three platforms.
“We considered using platform-specific technologies, but didn’t like the prospect of developing separate code bases for each platform,” says Dawson. Additionally, because Celtx was designed to be a semantic web application, he adds: “We wanted to ensure that Celtx was built upon semantic web technologies. The XUL runtime environment provides us this with its support for RDF.”
Another big reason why the Mozilla toolkits are attractive to these developers is that they are easy to immediately start using if one has the know-how for writing JavaScript, COM/C++ or XML code. For example, a person who designs web sites could probably use XULRunner to quickly throw together a user interface for an application.
“With just a little web developer skill, you’re coding a desktop application that is ‘web’ from the get-go,” says Lord. “When you code on XULRunner, you get everything Firefox is today and will be tomorrow, and you get everything that the Mozilla stack is today and will be tomorrow. That’s a tremendous platform — very broad and in some cases very deep, too.”
This ease-of-development comes with a caveat, however. Nick Nassar, a co-founder and developer of Miro, says XULRunner allowed him and his team to create a rich user interface, but “it’s slow and less flexible. Sometimes, things that are advantages in one context, like a cross-platform UI, can be disadvantages for another.”
Laggy performance and “bloat” are criticisms that have been lobbed at more than a few applications built with the Mozilla toolkits. This may in part be due to the complexity of the codebase and the specialized skills required to master building with them. Says Flock’s Stark: “Gecko is perhaps a little more difficult to work with than various other codebases like ObjC for OS X and .NET for Windows.
“The codebase isn’t completely optimized for performance to start with, but it’s not horrible by any means. Performance issues probably have more to do with new code added, which tends to be less mature than the platform itself. For Firefox, it appears that poorly-written extensions contribute to slow and memory-intensive behavior. One of the reasons for integrating features into Flock was to allow the package to be tested and optimized as a whole.”
In the Celtx team’s experience working with XULRunner, they found that performance issues can usually be traced to an over-reliance on JavaScript to handle complex processing. “JavaScript is the ‘duct tape’ of the XUL toolkit. Overuse of it will likely lead to performance problems. Creating a small XPCOM component is a better choice for complex processing,” Dawson recommends.
Nassar of Miro agrees but feels it is an acceptable trade-off for having the flexibility of an XML document-based UI: “For many projects, the advantages outweigh the performance hit. In our case, it made embedding a browser for the HTML part of our UI easy, and it made the thin chrome around our HTML-based interface easier to code, because we could leverage a web designer’s skills. It didn’t affect performance much, since we use HTML/CSS, which is slow anyway.”
The Flock developers found that the simplest solution for dealing with issues related to the Mozilla toolkit was also the most non-technical: Collaborate with the Mozilla development community and make your presence positive within it. There is a finite number of people who really understand how to work the Mozilla platform well. It is a lesson he and his group learned early on.
“Flock started out as a less-than-exemplary citizen in the Mozilla ecosystem,” he admits, “but every step we have made towards better representation in the community has come back to us in the form of strengthened relationships and better overall knowledge of the platform. Relationships with experienced folks will probably help you avoid some of the more difficult areas of the codebase.”
It is this community which, Songbird’s Lord enthuses, contributes to “history in the making” for the Mozilla development platform:
“You have to ask yourself: How the hell was Firefox so successful in the first place? How did it manage to get 400 million downloads? It is a little slower, and it is a little bloated. No company was supporting it. There was no marketing dollars. I think it really is [that] the open source, open standards, open web approach is the safest bet you can make [for] a single vendor solution.”




