# Awesome Meteor

A curated list of awesome Meteor Packages, libraries and software.

The official Meteor resources page can be found here

- Awesome Meteor
  - Getting Started
  - Collections
  - Forms and Templates
  - Users and Authentication
  - REST
  - Files
  - Routers
  - Debugging Tools
  - Editor Plugins
  - Search, sort and paginate
  - Mobile
  - Offline
  - Testing
  - SEO
  - Data Visualization
  - Analytics
  - Cron Jobs
  - Administration
  - Performance
  - Monitoring
  - Deployment
    - Docker Images
  - Front End Frameworks
  - Alternative Databases
  - Boilerplate
  - Open Source Apps
  - Internationalization
  - Scaffolding
  - Tooling
- Resources
  - Books
  - Courses
    - Free
    - Paid
  - Tutorials
  - Blogs
  - Websites
  - Q&A
  - Community Newsletters
  - Social
  - Work Opportunities
  - Related
- Built With Meteor
- Deprecated
- Contributing

## Getting Started

Where to start

- Official Meteor tutorial
- Official Guide

## Collections

Helpers and expensions for collections

- simple-schema - A JavaScript schema validation package that supports direct validation of MongoDB update modifier objects.
- aldeed:collection2 - Automatic validation of insert and update operations on the client and server.
- dburles:collection-helpers – Transform your collections with helpers that you define.
- matb33:collection-hooks - Extends Mongo.Collection with before/after hooks for insert/update/remove/find/findOne.
- reywood:publish-composite - publish a set of related documents from various collections using a reactive join.
- jagi:astronomy - The Model layer for Meteor.
- cultofcoders:grapher - Grapher: Meteor Collection Joins + Reactive GraphQL like queries.
- sakulstra:aggregate - Add proper aggregation support for Meteor.
- quave:collections - Create collections in a standard way.

## REST

REST support for Meteor

- maka:rest - automatically make your Meteor app accessible over HTTP and DDP alike.
- vatfree:restivus - Make REST endpoints for your Meteor app with incredible ease.

## Forms and Templates

Helpers for templates

- uniforms - Bunch of React components and helpers to easily generate and validate forms. Seamlessly integrate with `simpl-schema`.
- aldeed:autoform - UI components and helpers to easily create basic forms with automatic insert and update events, and automatic reactive validation.
- ostrio:templatehelpers - Utility helpers for your Blaze templates.
- aldeed:template-extension - A Meteor package: Replace already defined templates, inherit helpers and events from other templates.
- kadira:blaze-layout - Layout Manager for Blaze (works well with Meteor FlowRouter)

## Users and Authentication

Tools for handling users and authentication

- accounts-js - A suite of packages aims to provide all the tools you need to build a flexible authentication and accounts management solution for your application.
- alanning:roles - Roles support for the built-in accounts packages.
- meteor-user-status - Keeps track of users and their meta data.
- accounts-ui - Accounts UI for React in Meteor 1.3+.

## Administration

Tools for administrating your Meteor apps

- Meteor Candy - Fastest and easier way to add an admin panel to your app.
- yogiben:admin - A complete admin dashboard solution.
- houston:admin - A zero-config, Django Admin-like admin for Meteor.
- zodern:pure-admin - An isolated, customizable admin panel for Meteor.

## Monitoring

Tools for monitoring your Meteor apps

- kschingiz:meteor-elastic-apm - Perfomance Monitoring for Meteor based on Elastic APM
- monti-apm-agent - Performance Monitoring for Meteor
- lmachens:kadira - Performance Monitoring for Meteor

## Performance

Tools for speeding up your Meteor apps

- cultofcoders:redis-oplog - Redis Oplog implementation to fully replace MongoDB Oplog in Meteor
- staringatlights:fast-render - An active fork of fast-render
- epotek:method-cache - Meteor method caching using DataLoader
- maestroqadev:pub-sub-lite - Transform publications to be non-reactive.
- artillery-engine-meteor - Artillery load testing for MeteorJS applications.

## Deployment

Tools for deploying and maintaining Meteor apps

- meteor-up – Meteor Deployments.
- meteor-google-cloud - Automate Meteor deployments on Google Cloud App Engine Flexible
- mup-aws-beanstalk - Deploy Meteor apps to AWS Elastic Beanstalk using Meteor Up
- meteor-azure - Automate Meteor deployments on Azure App Service
- pm2-meteor - Simplest way to deploy, scale and run Meteor Apps with PM2.
- meteor-hero - Deploy MeteorJS applications for free with one command utilizing Heroku’s service.
- meteor-kubernetes-guide - Deploy a Meteor app with Kubernetes.
- meteorhacks:cluster - Clustering solution for Meteor with load balancing and service discovery
- demeteorizer - Converts a Meteor app into a “standard” Node.js application
- percolate:migrations - Simple migration system for Meteor
- yamup - Deploy Meteor apps to your own Ubuntu server (EC2, …) without dockers
- waveshosting - Web application to manage meteor deployments.

## Docker Images

- meteor-docker
- meteor-base
- docker-meteor

## Routers

Routers for Blaze

- ostrio:flow-router-extra - Carefully extended `flow-router` package. Up-to-date version with support of latest Meteor’s releases.
- msavin:parrot - Web router specially designed for building SPAs using Meteor
- meteorhacks:picker - Server Side Router for Meteor.
- iron:router - A router that works on the server and the browser, designed specifically for Meteor.

## Offline

Tools for Meteor offline support

- ground:db - GroundDB is a thin layer providing Meteor offline database and methods.
- npdev:collections - An easy way to create offline collections with SSR for Meteor
- meteor-service-worker - Meteor specific service worker implementaion.
- quave:pwa - A Meteor package that allows you to configure your PWA.

## Testing

Testing tools

- meteortesting:mocha - Mocha test driver package for Meteor.
- lmieulet:meteor-coverage - Test coverage for Meteor.
- hubroedu:mocha - Decaffed cultofcoders:mocha fork.
- antwaremx:meteorman - Meteorman: A DDP Client with GUI to test Meteor methods and publications (like Postman).

## SEO

Search Engine Optimization tools

- ostrio:spiderable-middleware - Prerendering (a.k.a. Spiderable) with support of ES6 (ECMAScript2015) - Meteor app crawled perfectly by search engines.

## Files

Handling files in Meteor

- ostrio:files - Upload files via DDP, HTTP and WebRTC/DC. To Meteor server FS, AWS, GridFS, DropBox or Google Drive. Fast, secure and robust.
- @reactioncommerce/file-collections - Reaction FileCollections is a set of NPM packages that provide the ability to support file uploads, storage, and downloads in Node and Meteor apps, and in browser JavaScript.
- netanelgilad:excel - Parsing and generating excel files (xlsx, xls).
- mikkelking:slingshot - Upload files directly to AWS S3, Google Cloud Storage and others in meteor.

## Search, sort and paginate

Search, sort and paginate related tools

- percolate:find-from-publication - Enable finding all documents that have been published by a given publication.
- meteor-publish-join - A performant NPM package for publishing non-reactive or aggregated values.
- tmeasday:publish-counts - Publish the count of a cursor, in real time.
- meteorhacks:search-source - Reactive Data Source for Search.
- matteodem:easy-search - Easy-to-use search with Blaze Components (+ Elastic Search Support)
- alethes:pages - Out of the box Meteor pagination.

## Mobile

Mobile Development

- meteor-react-native - Meteor client for React Native matching Meteor Spec.
- meteor-push - Push notifications for cordova (ios, android) browser (Chrome, Safari, Firefox).
- quave:universal-links - A Meteor package that allows you to expose your native iOS settings to enable Universal Links.
- meteoric:ionic - Ionic components for Meteor.
- driftyco:ionic - Official Ionic support for Meteor.
- martijnwalraven:meteor-ios - Integrates native iOS apps with the Meteor platform through DDP.
- delight-im/Android-DDP - DDP for clients on Android.
- okland:accounts-phone - A login service based on mobile phone number for Meteor.
- okland:camera-ui - Meteor package for taking photos with user interface, one function call on desktop and mobile. Allows to choose between camera to photoLibrary on mobile.
- percolatestudio/cordova-plugin-safe-reload - Cordova plugin to watch and recover after a broken Meteor Hot Code Push.

## Data Visualization

Data Visualization in Meteor: charts, maps, tables, etc.

- aldeed:tabular - Reactive datatables for large or small datasets.
- aslagle:reactive-table - Reactive table for Meteor, using Blaze.
- luixal:blaze-paginated-custom-list - Reactive and paginated item list.
- luixal:meteor-apexcharts - Reactive ApexCharts library packaged for Meteor.

## Analytics

Analytics

- okgrow:analytics - Google Analytics, Mixpanel, KISSmetrics (and more) integration for meteor.
- quave:analytics - A Meteor package that allows you to send your page views and more to Google Analytics.

## Cron Jobs

Cron Jobs in Meteor

- msavin:sjobs - A Meteor-first jobs queue / task scheduler.
- percolate:synced-cron - Cron system for Meteor. It supports syncronizing jobs between multiple processes.
- ostrio:cron-jobs - Package with similar API to native `setTimeout` and `setInterval` methods, but synced between all running Meteor (NodeJS) instances.

## Debugging Tools

Debugging Tools

- meteor-devtools-evolved - A chrome extension.
- msavin:mongol - Visual Editing Tool for Meteor for MongoDB Collections.
- msavin:jetsetter - Visual Get/Set Tool for Meteor Session Variables.
- babrahams:constellation - An extensible dev console for Meteor.

## Editor Plugins

- meteor-api - Meteor addons for Atom.
- meteor-zsh - Completion for the meteor command.

## Scaffolding

Scaffolding

- Meteor Kitchen - Code generator for Meteor.
- iron-cli - A scaffolding command line tool for Meteor applications.
- maka-cli - Maka-CLI is a command line tool, which organizes a web application’s file structure and automates everyday package installation tasks for various application frameworks.

## Tooling

- ESLint-plugin-Meteor - ESLint plugin for Meteor.

## Boilerplate

- CaptainN - meteor-react-starter - A starter project on Meteor with React.
- Pup
- matteodem - meteor-boilerplate
- React with Webpack + Meteor as a backend

## Open source apps

- Rocket.Chat - Realtime chat application built with Meteor.
- Wekan - Open source Trello-like kanban.
- Unchained Shop - Open source Commerce platform developed with Meteor.
- VulcanJS - A toolkit to quickly build apps with React, GraphQL & Meteor.
- Nosqlclient - MongoDB management tool.
- radgrad2 - Meteor based education management system.
- coauthor - Coauthor supercollaboration/discussion forum.

## Internationalization

- Meteor-Internationalization - Super-Lightweight and fast i18n isomorphic driver for Meteor with support of placeholders.
- meteor-accounts-t9n - Translations for meteor account’s error messages.
- meteor-universe-i18n - Internationalization package for React and Meteor.

## Front End Frameworks

Alternative Front End Frameworks to Blaze

- React - Working with React and Meteor.
- Vue - Working with Vue and Meteor (plus single-file components & apollo support).
- Svelte - Build cybernetically enhanced web apps with Meteor and Svelte.
- Angular 2 - Working with Angular 2 and Meteor.
- Angular - Working with Angular and Meteor.
- Famo.us - Famo.us and Meteor.
- frozeman:build-client - A tool to bundle the client part of a Meteor app.
- Asteroid - An alternative client for a Meteor backend.
- ddp.js - Isomorphic JavaScript DDP client.
- elm - elm as the view layer for a meteor based project.

## Alternative Databases

Alternative Databases for MongoDB

- vlasky:mysql - Reactive MySQL for Meteor
- meteor-pg - New and improved PostgreSQL support for Meteor
- ostrio:neo4jdriver - Neo4j Driver for Meteor, with support of GrapheneDB
- numtel:pg - Reactive PostgreSQL for Meteor
- simple:rethink - RethinkDB integration for Meteor

# Resources

Where to discover new Meteor things

## Books

- Meteor Explained
- Secure Meteor
- meteor-tuts - Free
- Meteor Tips - Free
- Pro Meteor - Free
- Meteor Cookbook

## Courses

- #### Free

  - How to Create an App - Most updated.
  - EventedMind - It’s old but goes into detail regarding how Meteor internals.

- #### Paid

  - Udemy - Learn React and Meteor in 2021: Build a multiplayer game
  - Udemy - Realtime Applications with Meteor and Vue - Course in Spanish.
  - leveluptutorials - Contains some free tutorials but mostly on 1.x.

## Tutorials

- Phusion Passenger: Meteor tutorial
- When a Meteor finally hits production - Blog post about deploying Meteor apps
- Transform any Meteor App into a PWA

## Blogs

- Official Meteor blog
- The Meteor podcast

## Websites

- Official website
- Official Documentation
- Official Guide
- Atmosphere - The catalog of Meteor packages, resources and tools.
- Packosphere - Alternative front-end for Meteor package system, built by Kelly Copley
- Discover Meteor
- Meteorpedia (infrequently updated)
- Meetups
- Reddit
- YouTube videos from meetups around the world
- Unofficial Meteor FAQ
- The Meteor Chef

### Q&A

- Stack Overflow
- Meteor forums

### Community Newsletters

- zodern
- StorytellerCZ

## Social

- Official Twitter Account
- Meteor Community Organization Slack Channel

## Work Opportunities

- Awesome Meteor Jobs
- We work Meteor
- Official Job Board

## Related

- Awesome Meteor Developers
- Awesome Blaze

## Built With Meteor

Commercial Grade Applications Built With Meteor

- Qualia - Real Estate Startup
- Code Signal - Skills-based assessment platform
- Pathable - Events managment suite
- MaestroQA - Quality assurance software

## Deprecated

This section is desginated for resources which are no longer compatible with the current version of Meteor

- Meteor 1.4 + React For Everyone Tutorials
- Meteor 1.4 For Everyone
- Intermediate Meteor
- Meteor For Everyone Tutorials
- tuts+ - Single Page Web Apps with Meteor
- Building a CMS-powered blog in Meteor
- scotch.io - Building a Slack Clone in Meteor

## Contributing

Your contributions are always welcome!

Thank you @gillesfabio for creating this repo!