Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started
Everything in Meteor is carefully designed to provide the developer with a new web application development paradigm
All the pieces and parts work seamlessly together. It just feels right
A development platform built by developers for developers
A whole new experience
Installation:
$ curl https://install.meteor.com | /bin/sh
Creating apps:
$ meteor create myapp
Running apps locally:
$ cd myapp
$ meteor
=> Meteor server running on: http://localhost:3000/
Deploying apps:
$ meteor deploy myapp.meteor.com
$ meteor bundle
Don't send HTML over the network. Send data and let the client render it
The platform is responsible of the data communication, which has collateral benefits such as security and efficiency
The data is just there for the clients to use. And 'there' means locally stored
Open approach in the shape of the Distributed Data Protocol (DDP)
Write both the client and the server parts of your interface in JavaScript
The boundaries between servers and clients blurs. It feels like a set of components working together
JavaScript as a declarative language fits in a natural way with the traditional imperative or programmatic approach
Same document-oriented database API in the server and the clients
Central instance of the database on the server. Distinct views of the database on the clients
Total control by the developer (data transfer, data storage, security, etc.)
Meteor takes cares of keeping everything updated and consistent
On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database
- Client update local database view
- Client request update to the server
- Server checks if the update is allowed
- If it is allowed, the server updates the central database and notifies all subscribed clients
- If it is not allowed, the server notifies the original client
Make realtime the default. All layers, from database to template, should make an event-driven interface available
Reactive programming = Reactive computations + Reactive data sources
Functions which are intelligently executed if some data they depend on changes
Hot code push updates: reactive apps
Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks
Compatible with already existent frameworks: jQuery, Bootstrap, Lungo, Firefox OS Building Blocks, etc.
Leans on trusted technologies (MongoDB, Handlebars) but from an open and plug-able perspective
"Things should be as simple as possible, but not simpler" (Albert Einstein)
Accomplish simplicity through clean, classically beautiful APIs
A clear repetitive workflow as the neatest sign of simplicity (the 'churrera' principle)
Meteor is a library of packages: pre-written, self-contained modules that you might need in your app
About a dozen core packages (HTTP connections, dependency tracking, reactivity, etc.)
Hundreds of optional packages via Atmosphere and Meteorite