Developers, time to geek out. Yahoo! has been working behind the scenes for the past several months on an exciting new technology that we think will deeply impact the web developer community. We call it “Cocktails” and it’s the technology powering Livestand, which we launched today at Product Runway.
“Cocktails” is a mix of HTML5, Node.JS, CSS3, JavaScript and a lot of ingenious, creative mind-bending tricks from Yahoo!’s engineers. Today, we are announcing two Cocktails: Yahoo!’s Mojito, an environment-agnostic JavaScript web application framework, and Yahoo! Manhattan, a hosted platform for Mojito-based applications.
Yahoo!’s Mojito
Mojito is a JavaScript web application framework that makes “your stuff run on both sides”, browser-side and server-side. With Mojito, developers will no longer have to write different code for the server backend and browser frontend. Not only that, but going forward there should be no more warnings on web pages reading “JavaScript enabled is required”, since whenever JavaScript is not enabled in the browser, Mojito-based applications will still run on the server side, all using a single code base.
The name Mojito is very illustrative to what makes Mojito-based applications unique. Each MVC (Model View Controller) unit in Mojito is both a module and a widget. It’s a module because it’s a self-contained package of business logic. It’s a widget because it’s a visual element of the UI the user can interact with. Mojito apps are actually both module and widget. We called these things ‘Mojits’ as way to describe this novel combination between modules and widgets. From there, it became Mojit, Mojito, and Cocktails were born.
Yahoo!’s Mojito is an evolution of existing web standards and web technology. Mojito builds upon standards where those exist as well as on proven technologies. YUI for Cocktails provides the necessary environment abstraction, scoping, packaging , etc. that allows Mojito-based applications to run equally well in a web browser, in a hybrid native/web runtime or in a server using Node.JS. YQL for Cocktails provides the necessary data query abstraction and caching for Mojito-based applications. The SQL-like interface of YQL becomes extremely useful to provide a single interface to the live data on the cloud as well as the local data coming from the on-device Sqlite.
Yahoo! Manhattan
Yahoo! Manhattan is a server-side JavaScript hosting environment for Mojito-based applications running on Yahoo!’s Cloud. Yahoo! Manhattan extends Node.JS to provide the necessary fault-isolation and fault-tolerance, scalability, availability, security and performance you’d otherwise expect from one of the largest web companies in the world. Yahoo! Manhattan provides a simple interface for developers to deploy, un-deploy and manage multiple versions of their Mojito-based applications, leveraging the scale and performance of Yahoo!’s technology infrastructure, e.g. Yahoo!’s Content Distribution Network to reduce the end-user network latency.
Cocktails in Livestand
Mojito powers the web publications in Livestand. Our Livestand development team members develop using a desktop browser running Mojito and Node.JS, and package the app for deployment on the iPad by embedding a web runtime including a native shell managing web views, the YUI library and Mojito. The same Livestand Mojits that run on the iPad also run on Yahoo! Manhattan. This allows the Livestand application on the iPad to offload some of the more complex and time-consuming processing to the Cloud, while ensuring a great experience and perceived performance.
Yahoo! Manhattan and YQL expose the full range of services and content in Yahoo!’s Platform to the publishers on Livestand. For example, publishers on Livestand benefit from Yahoo!’s C.O.R.E. (Content Optimization and Recommendation Engine) for personalization.
So how does this affect you?
We think that it’s very important for others to be able to leverage the technologies we have developed in Cocktails. First, we are working with others to evolve open standards whenever possible, leveraging the lessons we have learned creating Livestand for connected devices, and on unreliable network conditions.
We will also make Mojito open source through YDN in the first quarter of 2012. We look forward to working the community to make Mojito one of the leading web frameworks going forward, so that more and more developers can create web applications that run seamlessly on the client- and the server-side. Later in 2012 we will be opening Yahoo! Manhattan for publishers to be able to run Mojito-based applications on Yahoo!’s Cloud.
Going forward, Mojito and Yahoo! Manhattan will allow you to develop ONE app and deploy it on several devices to lower cost, increase agility and keep a uniform design across platforms (web, mobile, tablet). With the power of Yahoo! Cocktails, you’ll be able to build that app – deployable on several platforms –in the same time it currently takes to build each app individually.
To feel Cocktails and witness the silky and responsive interface, download Livestand from the iTunes App Store – available today. And while you do that, watch the videos below showing Cocktails in action and Yahoo!’s engineers introducing Cocktails.

40 Comments
A win for developers around the globe. Thank you, Cocktails team!
Awesome job Bruno
Was the entire livestand app developed using cocktails/mojito? I think the interface was very impressive.
Thanks Ash – there is nothing like working on cool exciting technology with a great engineering team!
The Livestand app is almost fully built using Mojito and leveraging Manhattan on the server-side to offload some of the publication. There are a few native application components, such as the black navigation chrome found on the left hand side. The rest of the native app code is providing the web runtime, doing things like memory management, caching, etc.
Congratulations, folks. This looks very, very cool.
Looks awesome – great job.
can you please consider making the livestand app available in the NZ itunes store?
why would you not do this?
other countries and languages are work in progress :)
This is super-cool. Congrats on this major launch, Cocktails team!
Livestand for Android?
Nice job guys! Glad to see it public. :)
Watching these videos I feel such incredible pride for what these teams and Yahoo! announced today. Getting 4 screen code capable to work at such scale and with such performance was an enormous effort that required some very innovative and creative problem solving. Livestand is a wonderful 'proof point' application of the initial capabilities of these Y! technologies. With the decision to open source, the future looks very bright. Again, congratulations to the team members of the Cocktails and Livestand teams, and looking forward to what will be possible as the broader developer network begins to participate in Q1.
Coming soon to an Android device near you …
So great to see this announcement! Cocktails is going to be such a huge benefit to engineering teams. Congratulations!
Nice release. If you pardon the plug, http://framework.joshfire.com/ has the same architecture and is open-source since June ;-)
cool…
Well done Bruno, Matt, Ric, Martin, Chris, and everyone else on the Cocktails team. Very excited to see the announcement and release of Livestand, and very excited to see the move towards open source next year. Congratulations!
Great work guys!
Does anyone seriously trust ANYTHING cloud-related from Yahoo?
"Sorry but this video is no longer available :( "
pretty cool nevertheless. will this manhattan thingy also be available outside the yahoo 'cloud', e.g. to be run as a standalone server?
This is sooo awesome! Can't wait for it to become open source!
@yrl: We currently have no plans to package and distribute Yahoo! Manhattan outside of Yahoo!'s cloud.
Great
Great work guys… Way to go Yahoo!!!
congrats, folks!
This is very compelling… Amazing job identifying the key ingredients for apps… Definitely food for thought !!
hotness!
Good job guys!!
Super…Can I get a link/copy to try it?
We’ll provide the source code once we open source Mojito in 2012.
Good job and congrats!!
I don't really understand, there was no reason to have node.js on the news2 example. It seemed like all you did was upload the .html and .js files to a server and viewed it as a webpage, and then packaged it up as a native app ala Phonegap…
great work.. congrats.!!
The greatest of them all by Bruno! Bravo Bruno.
@MatBee you are right re. the PhoneGap comparison for the native app. Executing with node.js in the server-side is important for those cases where the client is "handicapped" or has not access to JavaScript, e.g. on a slow connection the lag between the browser downloading the HTML page and the JavaScript asset being downloaded, parsed and executed could be 10s of seconds, and the UI would be unusable. This also allows us to shift some of the LiveStand code back and forth between client and server.
Great! So we have less code to maintain, can't wait to know more!
this is really a revolutionary, evolutionary act it is really shaken if Manhattan cloud deployment prices are also gonna be shaken low …
Es increible. Bravooooo ¡
Hello young, it is amazing, but as is access to the database, we have to configure it via Node.js or by the mojito? sorry for my English, I used the translator.