Skip to main content
Atmosphere is Meteor’s package repository, hosting thousands of community and core packages. It’s accessible at atmospherejs.com.

What is Atmosphere?

Atmosphere is the central registry for Meteor packages, similar to npm for Node.js. It provides:
  • Package hosting: Stores and distributes Meteor packages
  • Version management: Tracks all versions of every package
  • Dependency resolution: Helps Meteor’s constraint solver find compatible versions
  • Package discovery: Browse and search thousands of packages
  • Usage statistics: Track package downloads and popularity

Package Naming Convention

Atmosphere packages use a namespaced naming system:
Examples:
  • iron:router - Iron Router by the Iron team
  • aldeed:collection2 - Collection2 by aldeed
  • ostrio:flow-router-extra - Flow Router Extra by ostrio

Core Packages

Core packages maintained by Meteor don’t use a namespace:
  • accounts-base
  • mongo
  • tracker
  • ecmascript
These live in the packages/ directory of the Meteor repository.

Using Atmosphere Packages

Adding a Package

Examples:

Removing a Package

Updating Packages

Searching for Packages

Or browse at atmospherejs.com.

Listing Installed Packages

Or check .meteor/packages in your app.

Package Metadata

Meteor provides a DDP API at packages.meteor.com to query package information.

Available Data

The package server exposes several collections:

Packages Collection

One record per package:

Versions Collection

One record per package version:

Builds Collection

One record per architecture build:

Querying Package Data

Connect via DDP:

Package Statistics

Meteor tracks daily package installation statistics.

Accessing Stats

HTTP GET request:
Example:

Stats Format

JSON objects separated by newlines:
Fields:
  • name: Package name
  • version: Version installed
  • directAdds: Times directly added via meteor add
  • totalAdds: Total adds including as a dependency

Stats Subscription

Subscribe to available date range:

Package Discovery

  • Routing: ostrio:flow-router-extra, kadira:flow-router
  • Forms: aldeed:collection2, aldeed:autoform
  • Authentication: accounts-password, accounts-google
  • Testing: meteortesting:mocha, xolvio:cleaner
  • UI: blaze-html-templates, react-meteor-data
  • Build Tools: typescript, less, sass
  • Mobile: Cordova plugin packages
  • Security: audit-argument-checks, browser-policy

Finding Quality Packages

Look for:
  1. Active maintenance: Recent updates
  2. Good documentation: Clear README and examples
  3. High usage: Download statistics
  4. Test coverage: Test files included
  5. Semantic versioning: Proper version management
  6. GitHub repository: Open source with issue tracking

Version Constraints

Atmosphere uses Meteor’s constraint solver with semantic versioning.

Constraint Rules

  1. Major version must match exactly:
  2. Minor and patch must be >=:
  3. Single-loading: Only one version per app
  4. Gravity: Solver prefers oldest compatible version

Version Syntax

Package Resolution

Meteor looks for packages in this order:
  1. Local packages: packages/ directory in your app
  2. METEOR_PACKAGE_DIRS: Environment variable paths
  3. Atmosphere: Downloaded to ~/.meteor/packages

Overriding Atmosphere Packages

Place a local version in packages/ to override:
This is useful for:
  • Testing modifications
  • Patching bugs before upstream fixes
  • Customizing for your app

npm vs Atmosphere

When to Use Atmosphere

  • Meteor-specific functionality
  • Client-server integration
  • Meteor build system integration
  • Meteor API dependencies (DDP, Tracker, etc.)

When to Use npm

  • Pure JavaScript libraries
  • Node.js modules
  • React/Vue/Angular components
  • Utilities without Meteor dependencies

Using Both

Atmosphere packages can depend on npm packages:
And apps can use both:

Routing

  • ostrio:flow-router-extra - Client-side router
  • iron:router - Classic Meteor router (deprecated)

Data & Collections

  • aldeed:collection2 - Schema validation for collections
  • reywood:publish-composite - Reactive joins
  • dburles:collection-helpers - Transform helpers

Forms

  • aldeed:autoform - Automatic form generation
  • vazco:uniforms - Modern forms framework

Authentication

  • accounts-password - Password authentication (core)
  • accounts-google - Google OAuth (core)
  • accounts-facebook - Facebook OAuth (core)

Testing

  • meteortesting:mocha - Mocha test framework
  • xolvio:cleaner - Database cleanup for tests
  • johanbrook:publication-collector - Test publications

Development Tools

  • msavin:mongol - MongoDB admin interface
  • meteorhacks:kadira - Performance monitoring
  • bundle-visualizer - Analyze bundle size (core)

UI Frameworks

  • blaze-html-templates - Blaze templating (core)
  • react-meteor-data - React integration (core)
  • vue-meteor-tracker - Vue integration

Package Best Practices

For Package Authors

  1. Clear naming: Use descriptive package names
  2. Good documentation: README with examples
  3. Semantic versioning: Follow SemVer strictly
  4. Test coverage: Include tests
  5. Dependency management: Minimize dependencies
  6. Backwards compatibility: Don’t break existing APIs

For Package Users

  1. Check maintenance: Avoid abandoned packages
  2. Review code: Check source before using
  3. Pin versions: Use specific versions in production
  4. Monitor updates: Keep packages updated
  5. Report issues: Help maintainers improve

Package Security

Security Considerations

  1. Review package code: Packages have full app access
  2. Check maintainers: Trust verified authors
  3. Audit dependencies: Check npm dependencies too
  4. Report vulnerabilities: Email security@meteor.com
  5. Keep updated: Security fixes in new versions

Insecure Packages

Some packages are for development only:
Remove before deploying:

Troubleshooting

Check:
  • Package name spelling
  • Package exists on Atmosphere
  • Network connectivity
Try:
Solution: Choose one package or upgrade both to compatible versions.
  • Try removing and re-adding: meteor remove pkg && meteor add pkg
  • Clear cache: rm -rf ~/.meteor/packages
  • Check for binary dependencies needing specific architecture
Force update:
Or specify version:

Atmosphere API Example

Query package information programmatically:

Future of Atmosphere

Meteor continues to support both Atmosphere and npm:
  • Atmosphere: Meteor-specific packages
  • npm: General JavaScript packages
  • Hybrid approach: Use best tool for each need
Many new Meteor packages publish to both npm and Atmosphere for broader reach.

Next Steps

Creating Packages

Build your own package

Publishing Packages

Share your package on Atmosphere

Package Server API

Complete API documentation

Browse Packages

Explore Atmosphere packages