Simple, schema-driven, synchronizing, offline-enabled, websocket-powered JavaScript framework