Chapter 1. A better way to build apps
1.1.1. The story behind Meteor
1.1.3. Isomorphic frameworks: full-stack JavaScript
1.1.4. Processing in the browser: running on distributed platforms
1.4. Creating new applications
1.5. Dissecting the default project
Chapter 2. My fridge! A reactive game
2.4. Adding content to the database in real time
2.4.1. Storing items in the database
2.5. Moving items into the fridge
2.5.1. Adding jQuery-UI to the project
Chapter 3. Working with templates
3.1. Introduction to templates
3.3. Creating dynamic HTML templates
3.3.1. Double and triple-braced tags (expressions)
4.1. Meteor’s default data sources
4.2. Building a house-sitter app
4.3. Working with the Session object
4.4. Working with MongoDB collections
4.4.1. Querying documents in MongoDB
4.4.2. Working with Meteor collections
4.4.3. Initializing a collection
4.4.5. Display collection data in a template
4.4.6. Updating data in a collection
Chapter 5. Fully reactive editing
5.1. The reactive editing workflow
5.2. Reactive front ends vs. DOM manipulation
5.3. Staging changes in a local collection
5.4. Displaying collection data within a form
5.5. Reactive updates using a local collection
5.6. Implementing a simple notifications system
5.6.1. Adding a notifications template
Chapter 6. Users, authentications, and permissions
6.1. Adding users to an application
6.1.1. Adding password authentication
6.2. Authenticating users with OAuth
6.2.1. An introduction to OAuth
6.3. Managing user permissions, roles, and groups
7.1. Publications and subscriptions
7.1.1. publish() and subscribe()
7.1.3. Template-level subscriptions
7.1.4. Parameterizing subscriptions
7.1.5. Publishing aggregated data to a client-only collection
7.1.6. Turning an aggregation publication into a reactive data source
Chapter 8. Routing using Iron.Router
8.1. Routing in web applications
8.2.2. Creating your first routes
8.2.3. Defining a layout depending on a route
8.3.1. Using named routes and link helpers
8.3.2. Working with active routes for better navigation links
8.3.3. Waiting for external libraries to load
8.3.4. Organizing routes as controllers
9.1. The foundation of all applications
9.2.1. Version Solver and semantic versioning
9.4.2. Declaring package metadata
9.4.3. Adding package functionality
Chapter 10. Advanced server methods
10.2. Asynchronous functions using fibers
10.2.1. Introducing multitasking to the event loop
10.2.2. Binding callbacks to a fiber with wrapAsync
10.3. Integrating external APIs
10.3.1. Making RESTful calls with the http package
10.4. Uploading files to a collection
Chapter 11. Building and debugging
11.1. The Meteor build process
11.1.2. Running with the --production flag
11.2. Accessing running applications
11.3. Creating browser applications
11.4. Creating mobile applications
11.4.1. Hybrid apps with Cordova
11.4.2. Adding mobile platforms
Chapter 12. Going into production
12.1. Preparing for production
12.1.2. Testing functionality: the Velocity framework
12.2.1. The simplest deployment: meteor.com
12.4.1. Active-passive high availability with redundancy
12.4.2. Single-component deployments
A.2. Installing Meteor on Linux and Mac OS X
Appendix B. The anatomy of MongoDB
B.1.1. mongod: databases and shards
C.1. Load balancing with nginx
C.2. Configuring as a load balancer
C.2.1. Creating a site configuration file
C.2.2. Defining Meteor servers
C.3. Serving static content with nginx
C.3.1. Serving CSS and JavaScript