Automatically synchronised web apps with Meteor
In a screencast, the developers show how the Meteor platform allows developers to make server-side changes which are automatically pushed to clients, interact with a MongoDB database API from the client side, show synchronised views of the same page in two different browsers and see how the system compensates for latency.
The platform is in its very early stages, but can already make use of many existing web technologies such as coffeescript, jQuery, Backbone, underscore and others. Meteor packages them into "smart packages" which can be added to, or removed from, an application with a single command. The server side of Meteor is a node.js based server, but it eschews the event driven callback interface of Node for a single thread-per-request model. Databases and documents are stored at the server and modifications to them are then propagated to all clients where the Meteor client sorts out what changes need to be made to the displayed user interface. The database API is, currently, completely exposed at the client end, though the developers say that as soon as they have added authentication, they will make it possible to control that exposure.
The developers are running their own infrastructure as a free service for public deployment of betas and demos or users can run their own infrastructure. Meteor includes a
deploy command to send the application to the Meteor infrastructure and a
bundle command which packages everything needed to run the Node.js server, apart from Node.js and MongoDB, into a single .tgz file. The developers hope to release the GPL-licensed framework as a version 1.0 in "more than a month, but less than a year". Meteor's "early preview" is installable by simply running "
curl install.meteor.com | /bin/sh" and is available to be forked on GitHub. Documentation can be found at docs.meteor.com.