You are previewing Mastering MeteorJS Application Development.
O'Reilly logo
Mastering MeteorJS Application Development

Book Description

MeteorJS makes full-stack JavaScript Application Development simple – Learn how to build better modern web apps with MeteorJS, and become an expert in the innovative JavaScript framework

About This Book

  • Get your dream project up and running by building exceptional MeteorJS applications in a matter of days

  • Learn how to integrate other JavaScript frameworks into your MeteorJS project and become an expert in full-stack development

  • Go beyond coding and learn how to make modern design decisions – from mobile design to SEO – that drive great user experiences

  • Who This Book Is For

    If you’ve already had some experience with MeteorJS but want to learn how to build even better modern web application, this book has been created for you. It provides you with a comprehensive look at one of those most important frameworks being used for the modern web today.

    What You Will Learn

  • Get to grips with the basics and learn how to build a complete real-time application with MeteorJS

  • Find out how Meteor makes full-stack development simple – become a better developer, fast.

  • Use some of the most effective testing tools in modern web development to troubleshoot, debug and optimize your app

  • Find out how to write custom packages for applications – so you can build your project exactly how you want

  • Integrate React and Angular into your project

  • Design and develop high quality animations that will give your UI the edge

  • Build MeteorJS to serve as REST-based application and reactive system

  • Learn how to host a MeteorJS application and then scale it for data

  • Find out how MeteorJS can help you build for mobile

  • Learn how to make sure you implement an effective SEO strategy in your MeteorJS application

  • In Detail

    The web is dead – applications now rule our online experiences. But how are you going to build them? Well, if you’ve been paying attention, you might already have tried your hand with MeteorJS, the JavaScript framework that helps you build complete full-stack web applications that are responsive and fast with ease.

    Mastering MeteorJS Application Development shows you how to do even more with MeteorJS – if you’re ready to try a comprehensive course through one of the most exciting frameworks in web development today, this is the book you need. Designed to take you through the entire process of building an advanced multipage application with Meteor, you’ll be able to bring your web development ideas with surprising ease.

    You’ll not only learn how Meteor makes web development easier, but also how you can make using Meteor easier, by automating and simplifying tasks so you can be confident you have full control of everything in your workflow – especially everything that could go wrong. From automated testing to integrating other useful frameworks such as Angular and D3, each chapter covers a crucial element in the Meteor development process.

    Discover how to integrate animations using Meteor’s Blaze, to give your UI designs the edge, and explore reactive programming to effectively harness RESTful systems in your projects. You will also learn how to deploy and scale your application, two crucial aspects of modern development and vital in a changing digital environment with users expecting a product and experience that delivers. With further insights on developing for mobile – and how Meteor can help you tackle the challenges of the trend – and details on incorporating SEO strategies into your application, this book isn’t just a code tutorial – it’s about creating a product that users love.

    Style and approach

    This book is a practical guide that teaches you different ways to create custom packages, efficient client and server code, and more using Meteor. This book is packed with perfect examples and explanations to help you understand the concepts. With the perfect mix of theory and practical experience, it will equip you to become a professional MeteorJS developer.

    Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at If you purchased this book elsewhere, you can visit and register to have the code file.

    Table of Contents

    1. Mastering MeteorJS Application Development
      1. Table of Contents
      2. Mastering MeteorJS Application Development
      3. Credits
      4. About the Author
      5. About the Reviewer
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Building a MeteorJS Web Application
        1. An overview of MeteorJS
          1. Server
            1. MongoDB
            2. Publish/Subscribe
          2. Communication channel
          3. Client
            1. MiniMongo
            2. Tracker
            3. Blaze
          4. Additional information
        2. Developing a bus reservation application
          1. Accounts
            1. Signup
            2. Signin
          2. Creating a bus service
          3. List and search
          4. Reservation
        3. Summary
      9. 2. Developing and Testing an Advanced Application
        1. Scaffolding in MeteorJS
        2. Recreating the travel booking application
          1. The app directory
            1. Client
            2. lib
            3. Private and public packages
            4. Server
        3. Generators for the application
          1. Creating travel
          2. Listing and search
          3. Reservation
        4. Debugging
          1. Meteor shell
        5. Testing MeteorJS application
          1. Velocity
          2. Testing BookMyTravel2
        6. Summary
      10. 3. Developing Reusable Packages
        1. Introduction to packages
          1. An installed package
        2. Creating a package
          1. Package.describe
          2. Package.onUse
          3. Package.onTest
          4. The bucket package
            1. Collection
            2. Templates
        3. Using the package
        4. Testing the package
        5. Distributing a package
        6. Summary
      11. 4. Integrating Your Favorite Frameworks
        1. The server-side setup – FoodMenu
          1. Collection
          2. Publish
          3. Access rules
          4. Methods
        2. The client-side setup – FoodMenu
          1. Client packages
          2. Application styles
          3. The Angular.js application
            1. The header section
            2. The application container section
              1. Angular.js routes
              2. The CreateItem controller
            3. Uploading images
              1. The CollectionFS collection
              2. Access rules
              3. Publish images
            4. The AddItem Angular.js template
            5. Demystifying the logic
            6. Listing food items
              1. Route
              2. Controller
              3. Template
            7. Editing food items
              1. Route
              2. The EditItem controller
            8. Demystifying controller logic
        3. React.js with MeteorJS
          1. ReactFoodMenu
            1. Setup
            2. Server
            3. Client
              1. Client packages
            4. The first React.js component
            5. The header section
            6. The React.js component in Blaze
            7. The container section
            8. The application route
              1. Route – AddItem
            9. The AddEditItem component
              1. The initial state
              2. Component handlers
              3. React.js markups
            10. The listing section
              1. The listing route
              2. The list component
              3. The edit items route
              4. Edit patch
        4. d3.js with MeteorJS
          1. DataViz
            1. HTML
            2. Server
            3. Client – d3.js code
        5. Integrating any frontend framework with MeteorJS
        6. Summary
      12. 5. Captivating Your Users with Animation
        1. Animation in Blaze templates
        2. Animation using MeteorJS packages with Velocity.js
        3. Animation using Snap.svg
        4. Animation using d3.js
        5. Animation using the engine
        6. Summary
      13. 6. Reactive Systems and REST-Based Systems
        1. An overview of MeteorJS' reactivity
        2. MeteorJS' reactivity
          1. Tracker
          2. Optimizations in autoruns
        3. REST-based systems
          1. REST with iron-router
          2. API guidelines
          3. REST with restivus
        4. Handling volumes of data
        5. Summary
      14. 7. Deploying and Scaling MeteorJS Applications
        1. Understanding MeteorJS application deployment
        2. Build tools for MeteorJS applications
          1. Isobuild
          2. Demeteorizer
        3. Deploying a MeteorJS application
          1. Meteor Up
          2. Meteor deployment manager
        4. Scaling a MeteorJS application
          1. Scaling with Nginx
          2. Scaling with Meteor cluster
            1. Balancers
            2. The multicore support
            3. The SSL support
            4. Mup and Cluster
        5. The oplog tailing setup
          1. Creating a replica set
          2. Accessing the oplog from an application
        6. Third-party MeteorJS hosting solutions
          1. Meteor Galaxy
          3. Digital Ocean
          4. Database solutions
        7. Summary
      15. 8. Mobile Application Development
        1. Getting started
        2. Developing a simple mobile application
          1. The login interface
          2. The profile interface
          3. The contacts interface
          4. The messages interface
        3. Builds and deploying
          1. Hot code push
        4. More about the mobile app development
          1. Accessing plugin methods
          2. Debugging
            1. Debugging Android
            2. Debugging iOS
          3. Testing
          4. Packages
            1. The package development
        5. Summary
      16. 9. Best Practices, Patterns, and SEO
        1. Summarizing the concepts
          1. Publishing/subscribing
          2. DDP
          3. MergeBox
          4. MiniMongo
          5. Data retrieval from Mongo
          6. Session
          7. Sticky session
          8. Fibers
          9. Trackers
          10. Blaze
          11. Packages
          12. Build tools
        2. Best practices
        3. Securing database operations
          1. Database indexing
          2. oplog tailing
          3. Error handling
          4. Testing
          5. Managing subscriptions
          6. Publish/subscribe only the necessary data
          7. Application directory structure
          8. Serving static assets
          9. Application namespacing
          10. Transformation classes
          11. Latency compensation
          12. Identifying performance and scalability issues
        4. Application patterns
          1. The package pattern
          2. Problems with the usual way of writing MeteorJS code
          3. What we must know about packages
            1. DigiNotes
            2. MVC
            3. SEO
            4. Spiderable
          4. ES2015 and MeteorJS
          5. Meet the community
        5. Summary
      17. Index