Setting up ========== In this section we will go over the required tools and preliminary knowledge for best learning Feathers. Prerequisites ------------- Feathers and most plug-ins work on `NodeJS `_ v6.0.0 and up. For the guides we will use syntax that only works with Node v8.0.0 and later. On MacOS and other Unix systems the `Node Version Manager `_ is a good way to quickly install the latest version of NodeJS and keep it up to date. After successful installation, the ``node`` and ``npm`` commands should be available on the terminal and show something similar when running the following commands: .. code-block:: sh $ node --version v8.5.0 .. code-block:: sh $ npm --version 5.5.1 Feathers does work in the browser and supports IE 10 and up. The examples used in this guide will however only work in the most recent versions of Chrome, Firefox, Safari and Edge. What you should know -------------------- Readers should have reasonable JavaScript experience using `ES6 `_ and some experience with NodeJS and the JavaScript features it supports like the `module system `_. Some familiarity with HTTP and `REST APIs `_ as well as websockets is also helpful. The guide examples use `async/await `_. Familiarity with `Promises `_ and ``async/await`` (and how they interact) is highly recommended. For a good introduction to JavaScript promises see `promisejs.org `_ and then follow up with ``async/await`` in `this blog post `_. Feathers works standalone but also provides :doc:`../../api/express` with `Express `_. This guide does not require any in-depth knowledge of Express but some experience with Express will be helpful in the future (see the `Express guide `_ to get started). What we won’t cover ------------------- Although Feathers works with many databases, this guide will only use examples of standalone database adapters so there is no need to run a database server. Authentication will be shown later in the :doc:`../chat/readme`. All examples will reside within a single file. The Feathers generator (CLI) will create a recommended structure for a Feathers application. You can see what it does to structure an application in the :doc:`../chat/readme`. What’s next? ------------ All set up and good to go? Let’s :doc:`starting`.