v3-docs/docs/packages/index.md
Meteor supports two package ecosystems: Atmosphere packages built specifically for Meteor, and standard npm packages. You can use both in the same app.
With full npm support since Meteor 1.3, you may wonder when to use Atmosphere packages vs npm packages.
When to use Atmosphere packages:
Atmosphere packages are written specifically for Meteor and have several advantages over npm when used with Meteor. In particular, Atmosphere packages can:
ddp, mongo, or accountsimportIf your package depends on another Atmosphere package, or needs to take advantage of Meteor's build system, writing an Atmosphere package might be the best option.
For more details, see Using Atmosphere Packages and Writing Atmosphere Packages.
When to use npm packages:
npm is a repository of general JavaScript packages. Today, npm is used for all types of JavaScript packages across client and server environments.
If you want to distribute and reuse code that you've written for a Meteor application, consider publishing that code on npm if it's general enough to be consumed by a wider JavaScript audience. It's possible to use npm packages in Meteor applications, and possible to use npm packages within Atmosphere packages, so even if your main audience is Meteor developers, npm might be the best choice.
Meteor comes with npm bundled so that you can type meteor npm without worrying about installing it yourself. You can use meteor npm in the same way you would use a globally installed npm.
For more details, see Using npm Packages and Writing npm Packages.
Two public repositories of Meteor packages exist:
[[toc]]
<!-- @include: ./2.using-atmosphere-packages.md--> <!-- @include: ./3.writing-atmosphere-packages.md-->