There are a few services you'll need **_(all free)_** in order to run the development server and access the app locally. Here are the instructions for getting them:

# Algolia

Choose OAuth or Email Sign Up

## Algolia: OAuth Sign Up

1.  [Click this link and sign up for an account with either GitHub or Google.](https://www.algolia.com/users/sign_up)
    ![screen shot 2018-05-02 at 3 06 05 pm](https://user-images.githubusercontent.com/17884966/39547183-c5d8b572-4e24-11e8-80e3-5b595e0c9999.png)
2.  Select your region, and then hit "Let's get started!"
    ![screen shot 2018-05-01 at 2 30 52 pm](https://user-images.githubusercontent.com/17884966/39544263-80c7e39e-4e1b-11e8-802e-c9562bdf1b63.png)
3.  Skip the tutorial (or don't) and go to your dashboard.
    ![screen shot 2018-05-01 at 12 59 06 pm](https://user-images.githubusercontent.com/17884966/39544344-c8cc4496-4e1b-11e8-8d81-d570a48a0668.png)
4.  Click "Go to your dashboard".

![screen shot 2018-05-02 at 3 45 34 pm](https://user-images.githubusercontent.com/17884966/39547238-f4ddd1ae-4e24-11e8-942b-98a01e20c632.png)

5.  Agree to Terms and Conditions.
    ![screen shot 2018-05-02 at 3 45 49 pm](https://user-images.githubusercontent.com/17884966/39547258-05d347fa-4e25-11e8-9335-b65c72b846af.png)

6.  Click "API Keys" on the left navbar.

![screen shot 2018-05-02 at 4 24 30 pm](https://user-images.githubusercontent.com/17884966/39547400-7cdb854c-4e25-11e8-8442-7cfc1dc8bc1e.png)

7.  Change your keys accordingly (name of Algolia key -> name of our application key):

```
Application ID -> ALGOLIASEARCH_APPLICATION_ID
Search-Only API Key -> ALGOLIASEARCH_SEARCH_ONLY_KEY
Admin API KEY -> ALGOLIASEARCH_API_KEY
```

![screen shot 2018-05-02 at 4 26 27 pm](https://user-images.githubusercontent.com/17884966/39547471-b24f2e36-4e25-11e8-9a0e-b988d6a8253f.png)

8.  Done!

---

---

---

## Algolia Email Sign Up

1.  [Click this link and sign up for an account with your email address.](https://www.algolia.com/users/sign_up)
    ![screen shot 2018-05-02 at 4 30 52 pm](https://user-images.githubusercontent.com/17884966/39547712-5ff9d338-4e26-11e8-98e9-83852021ba90.png)

2.  Fill out your name and what describes you the most.
    ![screen shot 2018-05-01 at 12 57 03 pm](https://user-images.githubusercontent.com/17884966/39547792-9a436842-4e26-11e8-9199-c320d24476fe.png)

3.  Choose your datacenter/region closest to you.
    ![screen shot 2018-05-01 at 12 58 36 pm](https://user-images.githubusercontent.com/17884966/39548002-3f7d2640-4e27-11e8-8701-21820d852379.png)

4.  Skip the step asking about your project.
    ![screen shot 2018-05-01 at 12 58 12 pm](https://user-images.githubusercontent.com/17884966/39547930-09b2af08-4e27-11e8-8c1b-d6b67d75d141.png)

5.  Complete the onboarding flow and click "Go to dashboard".
    ![screen shot 2018-05-01 at 12 58 48 pm](https://user-images.githubusercontent.com/17884966/39548519-dc0491dc-4e28-11e8-90e2-be014acd0a66.png)

6.  Click "API Keys" on the left navbar.

![screen shot 2018-05-02 at 4 24 30 pm](https://user-images.githubusercontent.com/17884966/39547400-7cdb854c-4e25-11e8-8442-7cfc1dc8bc1e.png)

7.  Change your keys accordingly (name of Algolia key -> name of our application key):

```
Application ID -> ALGOLIASEARCH_APPLICATION_ID
Search-Only API Key -> ALGOLIASEARCH_SEARCH_ONLY_KEY
Admin API KEY -> ALGOLIASEARCH_API_KEY
```

![screen shot 2018-05-02 at 4 26 27 pm](https://user-images.githubusercontent.com/17884966/39547471-b24f2e36-4e25-11e8-9a0e-b988d6a8253f.png)

8.  Done!

That's it! You should try logging in with development, it should work. If it doesn't, let us know via an issue or in the contributors channel!

### _The following are optional, but are probably things you'll run into. That said, if you're working on tests and other things, you shouldn't need these._

### For authentication, you can choose Twitter, GitHub, or both.

# Twitter App

1.  [Click this link and sign in/sign up for a Twitter account.](https://apps.twitter.com) Note that your Twitter account will need a phone number linked to it in order to create an app.
2.  Create a new app, and fill out the form, like the following example image: ![](https://user-images.githubusercontent.com/17884966/41612665-952d4cae-73c1-11e8-8047-cf0bd03bffb6.png)

The only important field is the "Callback URL" `http://localhost:3000/users/auth/twitter/callback`, which redirects you properly to `localhost:3000` when signing in.

3.  Once done, go to your app's settings, and fill in the terms of service `http://dev.to/terms` and privacy policy URL `http://dev.to/privacy`:

![](https://user-images.githubusercontent.com/17884966/41617044-8155387a-73cd-11e8-9e1d-f14c4652bda2.png)

4.  Once done, go to your app's permissions, and check the "Request email addresses from users" box.
    ![screen shot 2018-05-02 at 5 02 48 pm](https://user-images.githubusercontent.com/17884966/39549184-f2e19952-4e2a-11e8-81ad-10e06c4e8a61.png)

5.  Change your keys accordingly: (name of Twitter key -> name of our application key):

```
Access Token -> TWITTER_KEY
Access Token Secret -> TWITTER_SECRET
```

6.  Done!

# GitHub

1.  [Click this link and sign in/sign up for a GitHub account.](https://github.com/settings/applications/new)
2.  Once signed in, create a new OAuth app. Here's an example; the URLs must match the example:
    ![screen shot 2018-04-26 at 4 08 01 pm](https://user-images.githubusercontent.com/17884966/39329488-77cbf554-496c-11e8-941e-dd257b5223ee.png)
3.  Change your keys accordingly; (name of GitHub key -> name of our application key):

```
Client ID -> GITHUB_KEY
Client Secret -> GITHUB_SECRET
```

4.  Done!

# Pusher

1. [Sign up for a free account with this link](https://dashboard.pusher.com/accounts/sign_up).

   ![screen shot 2018-10-03 at 5 48 09 pm](https://user-images.githubusercontent.com/7942714/46447013-85187700-c734-11e8-92f7-89a17240ea0f.png)

2. Once signed in, fill out the prompt to create a new Pusher Channels app. Only an app name is required.

   ![screen shot 2018-10-03 at 5 35 14 pm](https://user-images.githubusercontent.com/7942714/46446837-69f93780-c733-11e8-82d9-52ad97812d4b.png)

3. In your new Pusher Channels app, click the "App Keys" tab.

   ![screen shot 2018-10-03 at 5 41 43 pm](https://user-images.githubusercontent.com/7942714/46446905-c0667600-c733-11e8-9c55-8fabf28a27fe.png)

4. Change your keys accordingly (name of Pusher key -> name of our application key):

```
app_id -> PUSHER_APP_ID
key -> PUSHER_KEY
secret -> PUSHER_SECRET
cluster -> PUSHER_CLUSTER
```

5. Done!
