WinJS is Microsoft's JavaScript library for developing WinRT or Windows Store apps. One of the lesser announcements at this year's Build is that it is being released as open source.

Given that JavaScript is fairly difficult to make private - other than obfuscation there isn't much you can do, making WinJS open source isn't quite the huge step it might appear - but it is still a step forward.

You might think that with so many JavaScript toolkits available to build apps you don't need another, but WinJS is very nice and provides access to a range of standard WinRT UI components that make an HTML/JavaScript app look exactly the same as a WinRT "native" app written in C# or C++.

WinJS 2.0 was introduced with Windows 8.1 with some additional UI controls. As well as being used to create WinRT apps, it was also extended to Xbox including look and feel.

WinJS 2.1 was announced at Build and this extends its reach yet again to include Windows Phone 8.1, also launched at Build.

In other words, WinJS now works with the two newish Windows APIs - WinRT and Windows Phone.

Going beyond Windows, however, seems to be the aim of the open source project. WinJS will be usable on Chrome, Firefox and IE, if the goals of the project are met. What this means is that you can have a single Web app that runs on WinRT, Windows Phone and in a standard browser and it should look the same on all platforms.

Of course the downside is that this is yet another Web App specification to add to Chrome apps and Mozilla's Open Web Apps. At the moment none of the specifications is well enough implemented to win out over the others, so perhaps WinJS is in with a chance to be more than just another UI library - only time will tell.

The new WinJS website is also nice in that it gives you the chance to try WinJS in an interactive editor. If you are curious about what WinJS is all about then try it out - it is the easiest way to see the range of UI controls, for example.

If you want the code or if you want to contribute then you will find WinJS on GitHub under an Apache 2.0 license.