La force de Meteor réside dans sa fonction de mises à jour en temps réel, qui fonctionne bien pour certaines des applications sociales que l'on voit aujourd'hui, où l'on voit les mises à jour de tout le monde pour ce sur quoi on travaille. Ces mises à jour sont centrées sur la réplication de sous-ensembles d'une collection MongoDB sous les couvertures en tant que mises à jour locales de la base de données mini-mongo (leur sous-ensemble MongoDB côté client) sur votre navigateur Web (ce qui entraîne le déclenchement de multiples événements de rendu sur vos modèles). Cette dernière partie concernant les multiples mises à jour de rendu constitue également une faiblesse. Si vous voulez que votre interface utilisateur contrôle le moment où elle se rafraîchit (par exemple, les pages AJAX jQuery classiques où vous chargez le HTML et contrôlez tous les appels AJAX et les mises à jour de l'interface utilisateur), vous devrez vous battre contre ce mécanisme.
Meteor utilise une belle pile de plugins Node.js (Handlebars.js, Spark.js, Bootstrap css, etc. mais en utilisant son propre mécanisme de packaging au lieu de npm) en dessous ainsi que MongoDB pour la couche de stockage dont vous n'avez pas à vous soucier. Mais parfois, vous finissez par vous battre contre lui... par exemple, si vous voulez personnaliser le thème Bootstrap, cela perturbe la séquence de chargement du fichier responsive.css de Bootstrap, qui n'est plus réactif (mais cela se corrigera probablement lorsque Bootstrap 3.0 sortira bientôt).
Donc, comme tous les "full stack frameworks", les choses fonctionnent très bien tant que votre application correspond à ce qui est prévu. Si vous dépassez ce cadre et repoussez les limites, vous risquez de vous battre contre le framework...