Meteor, the JavaScript App Platform

Overview

Meteor

TravisCI Status CircleCI Status

Meteor is an ultra-simple environment for building modern web applications.

With Meteor you write apps:

  • in modern JavaScript
  • that send data over the wire, rather than HTML
  • using your choice of popular open-source libraries

Try a getting started tutorial:

Next, read the guide and the documentation.

Are you looking for examples? Check this meteor/examples

Quick Start

On Linux/macOS, use this line:

curl https://install.meteor.com/ | sh

On Windows, use this line:

npm install -g meteor

Visit the official install page to learn more.

Create a project:

meteor create try-meteor

Run it:

cd try-meteor
meteor

Developer Resources

Building an application with Meteor?

Interested in helping or contributing to Meteor? These resources will help:

Uninstalling Meteor

Aside from a short launcher shell script, Meteor installs itself inside your home directory. To uninstall Meteor, run:

rm -rf ~/.meteor/
sudo rm /usr/local/bin/meteor

On Windows, read here.

Comments
  • Geographical CDN issue causing meteor & package install problem

    Geographical CDN issue causing meteor & package install problem

    To China (Mainland) Users:

    You should just try VPN/Shadowsocks or other things to get access to the internet, and set HTTP_PROXY, HTTP_PROXY to use your bridge to the internet. 您最好尝试使用各类工具以访问完整的互联网,并设置 HTTP_PROXYHTTP_PROXY 来让 Meteor 使用您的工具。

    Original Issue Content

    div@dk:~$ curl https://install.meteor.com/ | sh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 6675 0 6675 0 0 4772 0 --:--:-- 0:00:01 --:--:-- 4774 Downloading Meteor distribution ### 4.2% curl: (18) transfer closed with 168048742 bytes remaining to read

        gzip: stdin: unexpected end of file
        tar: Unexpected EOF in archive
        tar: Unexpected EOF in archive
        tar: Error is not recoverable: exiting now
        Installation failed.
    
    confirmed Project:Installer Type:Bug Impact:some 
    opened by dksharp 297
  • Release 1.6

    Release 1.6

    EDIT: This original post talks about the upgrade to Node 6, but it was decided later on in this thread that Meteor will be upgrading to Node 8 instead. This PR now covers the Node 8 updates.

    To test the Meteor 1.6 release-candidate, simply update a project by running:

    meteor update --release 1.6-rc.18
    

    Since Meteor 1.4, each release of Meteor has shipped with the latest version of Node 4. However, Node 4 is no longer under "active" long-term support (LTS) and instead falls into the "maintenance" LTS category. Node 6 is now the recommended release for most users. While Node 4 has been perfectly stable for Meteor developers for some time now, it makes sense to keep Meteor up to date.

    Meteor 1.6 will be exclusively focused on upgrading the version of Node used by Meteor, along with a few must-have features that depend on Node 6, such as debugging with the --inspect flag in Chrome DevTools, and leveraging native support for new ECMAScript syntax on the server.

    Development of features not dependent on Node 6 will continue along the Meteor 1.5.x version line, and those changes will be regularly merged into this pull request. Bugs pertaining to Meteor 1.6 and/or Node 6 should be filed in the Release 1.6 milestone.

    This pull request supersedes #6923, where many of the initial problems with Node 6 have already been resolved. Because much of this work has already happened in parallel with Meteor 1.5, and because Meteor has previously survived an even bigger Node upgrade (Node 0.10.x to 4.x), we expect Meteor 1.6 will take significantly less time to ship than Meteor 1.5 did.

    As with previous Meteor beta testing cycles, whenever you see a commit added to this pull request with a message like Bump package versions for 1.6-beta.n release., that means you can run meteor update --release 1.6-beta.n to update an existing app to the new version, or meteor create --release 1.6-beta.n your-new-app to create a fresh Meteor 1.6 app.

    If you want to participate in the development of Meteor 1.6, you should check out the release-1.6 branch, regenerate the dev bundle, and run the meteor script from a checkout:

    cd path/to/meteor
    git fetch origin
    git checkout -t origin/release-1.6
    git submodule update --init --recursive
    scripts/generate-dev-bundle.sh
    ./meteor --help
    

    See these instructions for help with running Meteor from a checkout.


    Left to do:

    • [x] Release Meteor 1.5 and merge those changes into this branch.
    • [x] Audit the codebase to catch up with any breaking changes between Node 4 and 5: https://github.com/nodejs/node/wiki/Breaking-changes-between-v4-and-v5
    • [x] Audit the codebase to catch up with any breaking changes between Node 6 and 7: https://github.com/nodejs/node/wiki/Breaking-changes-between-v6-and-v7
    • [x] Audit the codebase to catch up with any breaking changes between Node 7 and 8.
    • [x] Reimplement meteor debug to use Chrome DevTools instead of node-inspector (👋 @brucejo75), which is such a better debugging experience it's not even funny.
    • [x] Get meteor-tool to build on Linux 32bit (runs out of memory currently).
    • [x] Get meteor-tool to build on Windows, and consider adding a 64bit Windows architecture. Note: I think both of these tasks will be easy, but as of right now our Windows build farm doesn't meet the minimum OS requirements of Node 8.
    • [x] ~~Consider removing or reducing the use of Fibers in Meteor's command-line tool, though they certainly still work in Node 8, and we've managed to work around the high CPU problems caused by previous versions of the meteor-promise package (which was the key to getting the tests to pass today).~~ Considered, and postponed until it matters.
    • [x] Eliminate most Babel plugins for server code, except for babel-plugin-transform-es2015-modules-reify.
    • [x] Audit the codebase to catch up with any breaking changes between Node 5 and 6: https://github.com/nodejs/node/wiki/Breaking-changes-between-v5-and-v6
    • [x] Upgrade npm to version 5, and teach tools/isobuild/meteor-npm.js to work with package-lock.json files instead of npm-shrinkwrap.json files. Merged.
    opened by benjamn 257
  • Release 1.5

    Release 1.5

    Just as Meteor 1.4.2 took aim at rebuild performance, Meteor 1.5 will be all about production app performance, specifically client-side application startup time.

    The banner feature of this effort will be first-class support for dynamic import(...), which enables asynchronous module fetching (sometimes referred to as "code splitting"). Jump to this comment for an overview of how it works.

    As usual, this release will include any bug fixes since Meteor 1.4.3, though special attention will be paid to pull requests and issues that affect the performance of running applications.

    You can update to the ~~latest release candidate~~ final release by running:

    meteor update --release 1.5
    
    in-development 
    opened by benjamn 248
  • Meteor build time/refresh time after file save is VERY slow

    Meteor build time/refresh time after file save is VERY slow

    _4 Upvotes_ I have reasonably large app that I'm working on. When I make any change to the code and press 'save', the time to build the app and refresh the browser is very long, and also highly variable. It is typically 30-60s. A colleague is working on the same app, and is using a similar machine (both are 1-2 year old high-end MacBook Pro), and in his environment the build time is typically <5s. When I make changes to a small demo project, the refresh time is <2-3s. I have tried a bunch of things, including reinstalling meteor, but to no avail. This is bringing development to its knees. What can I do?

    Thank you for your help?

    Project:Isobuild:Performance 
    opened by cdcv 227
  • Meteor 1.3 *early beta* (ES2015 modules, better file load order control, and more)

    Meteor 1.3 *early beta* (ES2015 modules, better file load order control, and more)

    We're starting the process towards Meteor 1.3, with module support, better NPM integration, better file load order configuration, and more.

    Meteor 1.3 gives apps full ES6 (ES2015) modules support and better NPM support. Apps and packages can now load NPM modules that are installed via npm install on client and on server. Amongst other benefits, modules let you control file load order in much more precise way than naming your files in special ways.

    To get feedback early, we decided to go ahead and release a beta release that doesn't yet have all of the features ready, but does have almost complete support for modules.

    Try the release by running meteor update --release 1.3-modules-beta.8 in your app directory.

    @benjamn wrote a great document explaining how to use modules in Meteor.

    Please start trying this release out! You can start experimenting with switching your apps or packages to use the new module features. Let us know what works well or doesn't.

    Take a look at the list of changes in Meteor 1.3, and the remaining tasks.

    opened by avital 221
  • Release 1.4.2

    Release 1.4.2

    As promised in the 1.4.1 release announcement, Meteor 1.4.2 will be all about rebuild performance, as well as the usual bug fixes post-1.4.1.

    The easiest way to get involved is to keep an eye on this pull request, and run meteor update --release 1.4.2-beta.n in a test app whenever you see a new beta.n version appear. Technically, you should wait at least a half hour after you see the version appear on the releases page, since it takes a bit of time to publish the meteor-tool package for all architectures. If you've helped out with previous beta testing cycles, all of this should be familiar.

    A more challenging way to get involved is to take matters into your own hands, and help improve Meteor rebuild performance. If you're up for that, we encourage you to identify specific performance problems, open issues to invite discussion of those problems, and then submit pull requests based on the outcomes of those discussions. Your pull requests should target the https://github.com/meteor/meteor/tree/release-1.4.2 branch instead of devel.

    Meaningful performance work is not easy, so we really must insist on the process outlined above. Contributions that come out of nowhere are not likely to be considered or accepted, because they tend not to take the whole picture into consideration.

    With that caveat out of the way, I don't think I need to convince you that build performance improvements are among the highest-impact work you can possibly do for the Meteor community. More than just improving your own developer experience, you’ll be a hero.

    Here are two great documents to read to get started thinking about Meteor performance optimization:

    • https://github.com/meteor/meteor/blob/devel/tools/PERFORMANCE.md
    • https://medium.com/@lucashansen/faster-meteor-reloads-62cca5b56460#.rj9ysw8ut

    To be clear, we are not expecting the community to do all (or even very much) of this work. Without a doubt, the core team will be working on these problems harder than anyone. If you're up for a challenge, though, we're here to support your efforts.

    in-development 
    opened by benjamn 181
  • Upgrading Node.js

    Upgrading Node.js

    _45 Upvotes_ So, Node.js now has a fully merged codebase between itself and io.js and they released 4.0 which is meant to be LTS.

    Since that will be the continuing track for the future, it would probably be a good idea to upgrade to node v4. But, it will be a large task since there are a lot of changes between 10.40.0 and 4.0.0.

    To me, it makes sense to upgrade especially since there are built-in ES2015 features and Meteor 1.2+ is all about ES2015

    EDIT: Breaking changes between 0.12 and 4.0 can be found here Breaking changes between 0.10 and 4.0 can be found here

    Type:Feature Project:JS Environment 
    opened by rgoomar 179
  • Meteor 1.3 *early beta* (Cordova)

    Meteor 1.3 *early beta* (Cordova)

    _1 Upvote_ As you may know, we've started the process towards Meteor 1.3 last month with a beta release of the modules support and related features.

    Another area of improvement for Meteor 1.3 is the Cordova integration. Because we don't want to entangle this too much with the modules work we've decided to release these changes as a separate beta for now.

    Some of the changes to our Cordova integration in this beta are:

    • Dependencies have been upgraded to Cordova 6.0.0, Cordova iOS 4.0.1 and Cordova Android 5.1.0.
    • On iOS, we now use WKWebView by default, which should greatly improve JavaScript performance
    • The file serving and hot code push plugin has been completely rewritten for reliability and performance: -Files are served from localhost instead of meteor.local. Among other things, this means the server is considered a trusted origin and web views will not block secure operations.
      • On iOS, switching to a real embedded web server allows for better caching, streaming, and source map support.
      • The plugin also allows for local file access on both iOS and Android. You can construct file system URLs manually (http://localhost:<port>/local-filesystem/<path>) or use WebAppLocalServer.localFileSystemUrl() to convert a file:// URL. On iOS, core plugins like cordova-plugin-file and cordova-plugin-camera (using Camera.DestinationType.FILE_URI) will now automatically return these URLs instead of file:// URLs
      • Downloading updates now uses native file transfer mechanisms (NSURLSession on iOS), which makes it much more reliable.
      • It only downloads changed files and does not copy files unnecessarily.
      • It makes sure to always end up with a valid version of all assets, even if downloads take a while or are resumed later.
      • It contains a safety mechanism that reverts to the last known good version when a faulty version has been downloaded (meaning it contains JavaScript errors that keep it from starting up).
    • It enables support for building Android apps on Windows

    You can find out more about the design of the new plugin in the README at https://github.com/meteor/cordova-plugin-meteor-webapp.

    Try the release by running meteor update --release 1.3-cordova-beta.5 in your app directory.

    Note that this beta also includes the changes in the 1.3 modules beta, so you may want to refer to https://github.com/meteor/meteor/issues/5788 for more information about those.

    Please let us know what works well or what doesn't!

    A few notes:

    • iOS apps now require iOS 8 or higher, and building for iOS requires Xcode 7.2 to be installed
    • Building for Android now requires Android SDK 23 to be installed
    • Upgrading to a newer version of Cordova may require you to upgrade your plugin versions. We ensure core plugins use the minimum required version, but you may encounter compiler errors or undesirable behavior with third party plugins. Upgrading to newer versions of these plugins may help if they have been updated to work with recent versions of Cordova.
    • When opening the generated project with meteor run ios-device, Xcode will show a dialog asking whether to Convert to Latest Swift Syntax. Make sure to click cancel here, because this conversion will leave the code in an invalid state (this seems to be an Xcode bug).
    • Some of the icon and launch screen image sizes have been deprecated, so you may receive warnings about this.
    Project:Mobile 
    opened by martijnwalraven 171
  • FR: Switch to react and react native?

    FR: Switch to react and react native?

    "Embrace the ecosystem" http://docs.meteor.com/#/basic/sevenprinciples

    I'm really happy with Blaze but it seems React is doing the same thing, why not cooperate?

    • It got an official component model
    • Its fast
    • It renders server-side
    • It does work natively on ios and android - natively...
    • Meteor core team has limited ressources

    Native is one killer feature on the way: react native allowing us to write js and use the native ui components.

    I've been working on several meteor mobile projects, and just recently bumped to use the official cordova implementation. Its ok, but still cordova with the inconsistencies that follows.

    React native is doing something a lot of us have thought about: letting us write js and leverage the native ui. Its actually allowing faster development than regular native development (eg. not having to recompile all the time)

    I know some would argue that its only for mobile, but its actually also for desktop, the Meteor build tool supports multiple platforms, this is cool!

    We could wrap ios/android native code in our packages instead of trying to fix the cordova plugins all the time...

    https://www.youtube.com/watch?v=7rDsRXj9-cU

    Just my honest opinion, I think react fits Meteor very well, maybe have a Meteor React distribution for starters to check out popularity...

    Kind regards Morten

    Type:Feature 
    opened by raix 155
  • Hot Code Push broken on iOS

    Hot Code Push broken on iOS

    My iOS app can't use hot code push to get new versions I upload. After some searching I believe I can narrow down the problem to a bug in cordova-plugin-meteor-webapp which tries to link the same file twice. I'm pretty sure that is what breaks hot code push. I found a similar issue here: https://github.com/meteor/cordova-plugin-meteor-webapp But that repository is untouched since February so I decided to open a new issue here.

    My current Meteor version is 1.7.1-rc.5, I'll try to update the meteor version to 1.8, test again and post an update here.

    EDIT: After trying to build an iOS App with Meteor 1.8 I'm getting the same error

    opened by EliArtist 134
  • Some commands refresh the package catalog unnecessarily

    Some commands refresh the package catalog unnecessarily

    In Meteor 0.9.4 and earlier, we refreshed the package catalog at relatively unpredictable times; essentially, any time that a low level operation failed to find metadata that it was looking for. This led to behavior that was unpredictable for users and for core developers. Sometimes we would fail to refresh when refreshing was necessary; in other cases we would uselessly refresh many times per command. We were also very inconsistent as to how refresh errors were displayed and if they were treated as fatal.

    For Meteor 1.0, we have implemented a much simpler approach: depending on the command, it may either never refresh, or refresh once on startup. The command can declare if an error in the refresh is fatal or not. Commands that don't deal with your local packages and app never refresh (eg 'meteor logs'). Most other commands refresh once. (In addition, long-running commands like 'meteor run' refresh every 15 minutes in the background, non-blocking.)

    This is a much simpler and less bug-prone approach than the previous approach. But it has the disadvantage that some common commands like 'run' always refresh even if nothing package-related has changed. To fix this, we need to do some deeper refactorings.

    Post-1.0, we will refactor build, deploy, run, debug, and test-packages to not refresh on startup. However, they will be refactored to have a centralized "make sure local packages can be parsed and the constraint solver runs successfully" point in the code, with well-defined error handling. We will ensure that it is easy to differentiate between errors that could be fixed with a refresh vs other errors. We will then put into place a much higher level version of the old retry-and-refresh: specifically, we will "refresh and retry" if the high-level "parse and solve constraints" operation fails in such a way that a refresh might help.

    Errors that could be fixed with refresh:

    • constraint solver not finding a solution
    • api.versionsFrom unknown release (though see #2979)
    • unknown package name or version in api.use
    • unknown package name or version in .meteor/packages
    • unknown package name or version in .meteor/versions (though this is a more recoverable error, since if we don't know something even post-refresh we can just ignore .meteor/versions)

    (other examples marked with XXX #2846 in the code.)

    As a workaround for now, you can disable catalog refreshing entirely by setting the METEOR_OFFLINE_CATALOG environment variable. This will prevent you from getting any package or release updates (including updates that will fix this bug!) so I would avoid setting it permanently for every command.

    opened by glasser 123
  • Meteor developer accounts do not work when logging in with github

    Meteor developer accounts do not work when logging in with github

    Meteor developer accounts allow logging in with email/password or with github. When using github there is no error but the user is not logged in. This can be seen on any website that uses Meteor developer accounts, including Packosphere, Gravity, and Monti APM.

    Reproduction is at https://github.com/zodern/repro-meteor-developer-account-github

    Type:Bug Severity:production Impact:some Project:Accounts:OAuth 
    opened by zodern 0
  • Add CodeQL Security Analysis GitHub Action

    Add CodeQL Security Analysis GitHub Action

    This PR introduces CodeQL scanning to meteor. There are currently 953 alerts including 50 high-severity security vulnerabilities.

    50 high 26 medium 25 errors 229 warnings 623 notes

    The security tab doesn't seem to be visible for me (or publically?) on the meteor repository. If possible, it would be great to be added to have visibility. I'd be happy to help contribute to fixing any and also sifting through any false positives/warnings.

    opened by wreiske 0
  • Use mongodb driver types for Selector=>Filter, Modifier=>UpdateFilter, SortSpecifier=>Sort instead of homebuilt types

    Use mongodb driver types for Selector=>Filter, Modifier=>UpdateFilter, SortSpecifier=>Sort instead of homebuilt types

    Now that mongodb has great typescript support, bring in filter, updatefilter and sort types from the driver types and remove the now unused old types.

    Replica of https://github.com/DefinitelyTyped/DefinitelyTyped/pull/63759

    Project:Mongo Driver 
    opened by perbergland 1
  • docs: Fix a few typos

    docs: Fix a few typos

    There are small typos in:

    • docs/source/commandline.md
    • tools/isobuild/compiler-deprecated-compile-step.js
    • tools/utils/buildmessage.js

    Fixes:

    • Should read libraries rather than libaries.
    • Should read file name rather than filenanme.
    • Should read compatibility rather than compitability.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    Project:Docs Project:Tool Project:Isobuild 
    opened by timgates42 1
Application structure for new adonis app, think of it as scaffolding a new project

AdonisJs Application This repo is the pre-configured project structure to be used for creating ambitious web servers using AdonisJs. Make sure to star

AdonisJS Framework 375 Oct 15, 2022
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest is a framework for building efficient,

nestjs 53.2k Dec 31, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
Meteor, the JavaScript App Platform

Meteor is an ultra-simple environment for building modern web applications. With Meteor you write apps: in modern JavaScript that send data over the w

Meteor 43.2k Jan 9, 2023
⚡️The Fullstack React Framework — built on Next.js

The Fullstack React Framework "Zero-API" Data Layer — Built on Next.js — Inspired by Ruby on Rails Read the Documentation “Zero-API” data layer lets y

⚡️Blitz 12.5k Jan 4, 2023
GetOsLocalesCrossPlatform - A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers

getOsLocalesCrossPlatform A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers This script is

null 1 Jan 2, 2022
Concircle scanner mobile app is application That helps you scan your order and position and to know if there are exact or not. it's cross-platform app.

Concircle scanner mobile app ⭐ Star on GitHub — it motivates Me a lot! Concircle scanner mobile app is application That helps you scan your order and

Aymen Ouerghui 10 May 7, 2022
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.7k Jan 8, 2023
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.7k Jan 4, 2023
Awesome books app is a basic website that allows users to add/remove books from a list. It is a single page app (SPA) which allow switching to different pages of the app without page load. Built with JavaScript.

Awesome Books ES6 In this project, I build a basic website that allows users to add/remove books from a list. using ES6 syntax and make it more organi

Abdulhamid 11 Jul 1, 2022
Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

51pwn 29 Jan 8, 2023
Cross platform terminal app from Visual Studio Code.

CodeTerminal Standalone terminal from Visual Studio Code. Installation macOS Highly recommanded to install with homebrew. brew tap xcodebuild/custom b

xcodebuild 673 Dec 21, 2022
A cross-platform Node app that publishes a LogSeq journal as a blog via Drummer

myLogseqBlog A cross-platform Node app that publishes a LogSeq journal as a blog via Drummer How to install Download the app from the repo. It's a .zi

Dave Winer 14 Jul 23, 2022
A fully cross-platform messenger app with End to End Encryption (E2EE).

Smartsapp A fully cross-platform messenger app with End to End Encryption (E2EE). Demo NOTE: The features shown in the demo is not exhaustive. Only th

Derek Jones 13 Aug 25, 2022
A cross-platform desktop app with a nice interface to Stable Diffusion and others

GenerationQ GenerationQ (for "image generation queue") is a cross-platform desktop application (screens below) designed to provide a general purpose G

Weston C. Beecroft 25 Dec 28, 2022
JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard API using JavaScript async and await and add some styling.

Leaderboard Project JavaScript project for the Leaderboard list app, using Webpack and ES6 features, notably modules. this app consume the Leaderboard

bizimungu pascal 4 May 20, 2022
Vue Native is a framework to build cross platform native mobile apps using JavaScript

Vue Native Visit our website at vue-native.io or read the official documentation here. Build native mobile apps using Vue Vue Native is a framework to

GeekyAnts 8.4k Jan 6, 2023