Yahoo has open sourced Mojito, its fledgling software framework for building applications that run across iPhones, iPads, Android devices and practically any other contraption on the modern web.

Already used inside Yahoo to build such applications as the Yahoo Livestand – an app that serves up digital magazines and newspapers – Mojito is now available on GitHub to the developer world at large. In short, the framework is a counterplay to the Apple App Store, which encourages the development of applications built specifically for Apple's iOS mobile operating system. Mojito is a way of building applications with JavaScript, the standard web programming language that runs on most any smartphone, tablet or PC.

Yahoo first unveiled Mojito in November, when it released Livestand. "We thought about building really cool apps for the iPhone or iPad. But what happens when Android really starts taking off? What happens on web browsers? What happens on feature phones?" Yahoo chief platform architect Bruno Fernandez-Ruiz told us at the time. "So we’ve built a number of things that let you build an application for the Apple App Store, but also distribute the same code to mobile web browsers and browsers on the desktop."

The framework is part of a larger collection of Yahoo-designed development tools dubbed "Cocktails." This includes Manhattan, a Mojito-based online service for building applications that Yahoo will offer up to developers later this year.

Mojito is built atop Node.js, an increasingly popular development platform based on the JavaScript engine at the heart of Google's Chrome browser. JavaScript began life as a means of building code that's sent across the network to a web browser running on a client machine. But with Node.js, developers can use JavaScript to build the back-end of an application – i.e., the part that runs on a distant server somewhere.

The trick with Mojito, Fernandez-Ruiz told Wired, is that you can you use essentially the same JavaScript code to run both the front-end and the back-end of your application. This means that if a mobile device doesn't have enough bandwidth to download and execute certain JavaScript code, the server can run the code instead and send the results down to the device when bandwidth is restored. And while the client is waiting for the server, it can continue to run other parts of the application on its own.

"It takes a while to download JavaScript, and that is the issue," he said. "[Mojito] can run that same JavaScript on the server, but at the same time give the client an application that's useable."

The idea is to facilitate applications operate as seamlessly as possible when they move from online to offline and back again. "On a laptop, you just assume that the user has a good connection. The client-server paradigm can work well. But on mobile devices, even after you move to high-speed 4G LTE networks, you have dead cells. You have to switch cells. You might not have enough coverage. Things don't download," said Fernandez-Ruiz. "As mobile becomes more and more important, you have to design for partially connected experiences."