Why XUL might suit your needs

XUL has been around since around 2000, why is it getting so popular now you might ask.

Well, thanks to the continued rise in popularity of Firefox, XUL has been getting the attention it deserves. There are currently thousands of extensions available to even further improve the web experience. From efficiency tools to data feeds, Firefox users get the most out of the web guaranteed.

XUL can be used to:

  • Create Firefox browser extensions
  • Create "Medium" size applications that can run "on-top" of Firefox
  • Create cross platform stand-alone applications

Software applications are traditionally either web based or purely desktop. In the past, most destop applications that needed to do something "online" they embedded a browser component. With XUL you have the ideal environment.

Firefox extensions

It is fairly easy to make a Firefox extension, for a start you only need the standard widgets like textboxes, selectboxes, some menus and JavaScript and off you go to make by far the easiest piece of "cross platform" functionality you will ever make.

Medium size applications on top of Firefox

When you browse through the Firefox extensions directory, you will notice there are increasingly more tools available, that isnt "just a little toolbar". Things like debuggers, typing tutors, media managers, clipboard tools, Blog and Bookmark API integration, aggregators, the list goes on.

These applications makes use of more of the power of XUL, like RDF, and the huge list of interfaces that can be accessed through JavaScript.

Delicious API, Web developer, FireFTP, Wizz RSS Reader, Typing Drills

Stand-Alone Applications

XUL is the ideal platform when you are planning to develop software with a strong online component, and cross-platform deployment. XUL has been thoroughly developed, and therefore would be attractive if you do not want to "re-invent the wheel", as the vast collection of interfaces will most probably meet your requirements. AJAX and/or RDF is available for communication.

You can take XUL further, by utilising XBL (eXtensible Bindings Language) to mainpulate widgets (this includes changing the behaviour of widgets, pre-declare values, input masks and even grouping of widgets that will be reused frequently). With XPCOM (Cross-platform
Component Object Model) you can either utilise native mozilla objects or create your own with C++.

Some examples:
Google Adwords Editor, Komodo, @tMail, Songbird (Open iTunes),