diff --git a/.gitignore b/.gitignore
index e7649391d..d05f5f2d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -117,3 +117,4 @@ $RECYCLE.BIN/
 # Others
 data/
 .next/
+out/
diff --git a/.travis.yml b/.travis.yml
index 6b32a58f1..3934f143c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,8 +2,21 @@ sudo: required
 dist: trusty
 language: node_js
 node_js:
-  - "7.7"
+  - '8.6'
 before_install:
-  - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.27.5
-  - export PATH="$HOME/.yarn/bin:$PATH"
+  - 'curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.27.5'
+  - 'export PATH="$HOME/.yarn/bin:$PATH"'
 cache: yarn
+after_script:
+  - >-
+    yarn export && cd out && NOW_ALIAS=coderplex-app.now.sh node
+    ../scripts/now.js -p
+branches:
+  only:
+    - master
+env:
+  global:
+    - secure: >-
+        nDYIe5Cw1FgD1Iqv2FKRG5Q6Jvvml4ovKPjMRD3BBWinPHe6xbZGtPi0P/Jqt6PFmu5o3aiWQO4ffYnFYUW8N8Tu86RMr0sLQ7Sv6MiE0JxL+7Y+VBZ9h1i9MARiTFQRUw9lrToNa13bnuGy5YNfx4nVUo63vluRTCW6AZd0h01tgEjbhTAamWf1z/n26ACMNJSr2iQ7coakLwpsQvdXMcUe5tAduzoQtLb8DiXdbXO+D7Oepl4dQvOfosa14wW5Z6MN6Y/AxxJ246Cngm3hgZF7IpLCD49H7shXHHSaIcYkJtnSRozKSBEdz34+Jqw+278vcWOA4n2advAhWd2oCAUa0drmu8Nu2Obtrx4oAUQhDwBxfQhbmXpen2Ry5DKp86AurTxgXc+n6bPfjwGdjha2u6cd1fCwpTu5pgnOeX101U/Bu68tAz/EIErCDxHDW/WyrBkVKG3rkABjv3pse4ZJuMy3eeKp+8o2P29b77GHxhKdEw4SvZSfdfnVooABcC6p/sqcumuTvJn20AZkBdhuxGDYSEfNecKPAEHRV8nUQUbMVT7bImQAgl4O4QhHcOfrthbNnQJM94DX0Z2xRQ5sdRmzhe4Ob771EUByNdMO7k2O1KsJAWQ78KhTdOJKoiIp2sH9zRGCTjnTIoCDJx4zBTGHpqV0+R4ltth7T4Q=
+    - secure: >-
+        Gj+PgZbNTBJ4C/5WZPjMicUWYJCt+gVnuDNjJCyahqFOOHvTowl3WKoeRwxSf/it9xqW/su6JrehgQixn0OVhkVWL8FVgs5TCvFtFBdYTHTrPIi+2T0sulp/NscsDG2hh3d6WD+AnC4u5QtRkTuh7IZEpLkRTHBwedRhfjvPOQaaT5wZCVMiPrscRhsNHJ4pTl2lEyU0BaLCxWkuAysWw5i7ZhxwtDNZroDuyIqhtJbJIXD9DkPQOuekJGyk+hqXJ7EdtHudltnh4M3Q44799k6n0NQIhjmkF5IZHnZVCKrZh+L0I/xyLU1WbY1uU4fShneryziFzKSAuDobmMC/z/kq/apSbPWuILeY5IMR/33NCz4dcb1bJG5IwCo35NHrqwfxElCkX9L1IyodCVXnZbC5jmwbbqyFHIPlmIUGhRxQyebZrXVGbJe8gHx4aMLpWeDrKL2PqbPOZkwfdDX/sbxhLjChUF6Pr9xFSQ12K/k17peE7KtpHpeIzDs2W0suQlm+/yH9auqUKXrrPp63U61gEY5TQzvBoUa7eTCOxdhTJqFhQw6DmFNDT2Qv06XiSbRt+L+N/EHQDljOADaw+0Z8LbOWa90l8klLIgsNvy8mzPx+kFieLeSh5ShlTguvNBQBK+bsLigc1/5Q3B62HEqLzY8piw+X4SLaHvdTeK8=
diff --git a/components/header.js b/components/header.js
index 909d3f8b4..5951ba474 100644
--- a/components/header.js
+++ b/components/header.js
@@ -3,9 +3,7 @@ import Headroom from 'react-headroom';
 import NProgress from 'nprogress';
 import Router from 'next/router';
 import Link from 'next/link';
-import { Dropdown } from 'semantic-ui-react';
 
-import { logout } from '../utils/authenticate';
 import GlobalStyles from './global-styles';
 import Head from './head';
 
@@ -30,36 +28,29 @@ export default props => {
     {
       title: 'Home',
       path: '/',
+      external: false,
     },
     {
       title: 'Events',
       path: '/events',
+      external: false,
     },
     {
       title: 'Learn',
       path: '/learn',
+      external: false,
     },
     {
       title: 'Space',
       path: '/space',
-    },
-    {
-      title: 'Jobs',
-      path: '/jobs',
-    },
-    {
-      title: 'Projects',
-      path: '/projects',
+      external: false,
     },
     {
       title: 'Blog',
-      path: 'https://medium.com/freecodecamp-hyderabad',
-    },
-    {
-      title: 'Login/Register',
-      path: '/login',
+      path: 'https://medium.com/coderplex',
+      external: true,
     },
-  ].filter(item => (props.username ? item.path !== '/login' : true));
+  ];
   return (
     <Headroom>
       <header>
@@ -73,17 +64,13 @@ export default props => {
             <ul className="nav__links">
               {navItems.map(item => {
                 return (
-                  <li
-                    key={item.title}
-                    className={`nav__linkItem ${item.path === '/login'
-                      ? 'login__btn'
-                      : ''}`}
-                  >
+                  <li key={item.title} className="nav__linkItem">
                     <Link href={item.path}>
                       <a
                         className={`nav__link ${props.url.pathname === item.path
                           ? 'nav__link--active'
                           : ''}`}
+                        target={item.external ? '_blank' : '_self'}
                       >
                         {item.title}
                       </a>
@@ -91,26 +78,6 @@ export default props => {
                   </li>
                 );
               })}
-              {props.username && (
-                <li className="nav__linkItem">
-                  <img src={props.avatarUrl} alt="avatar_img" />
-                  <Dropdown
-                    inline
-                    text={`${props.username}`}
-                    pointing
-                    className="dropdown__linkItem"
-                  >
-                    <Dropdown.Menu>
-                      <Link href="/profile">
-                        <Dropdown.Item as="a">Profile</Dropdown.Item>
-                      </Link>
-                      <Dropdown.Item onClick={() => logout()}>
-                        Logout
-                      </Dropdown.Item>
-                    </Dropdown.Menu>
-                  </Dropdown>
-                </li>
-              )}
             </ul>
           </nav>
         </div>
@@ -180,19 +147,6 @@ export default props => {
           border-bottom: 2px solid #314159;
           pointer-events: none;
         }
-        .login__btn .nav__link {
-          font-weight: bold;
-          color: #00df90;
-        }
-        .login__btn .nav__link:hover {
-          font-weight: bold;
-          color: #01bf7c;
-        }
-        .login__btn .nav__link--active {
-          color: #01bf7c;
-          border-bottom: 2px solid #00df90;
-          pointer-events: none;
-        }
         @media (max-width: 700px) {
           nav {
             justify-content: center;
diff --git a/components/row-events.js b/components/row-events.js
index ff99ac922..6a3ae1bca 100644
--- a/components/row-events.js
+++ b/components/row-events.js
@@ -1,6 +1,6 @@
 import React from 'react';
 import { Card, Icon } from 'semantic-ui-react';
-import moment from 'moment';
+import format from 'date-fns/format';
 
 const RowEvent = props => {
   return (
@@ -16,7 +16,7 @@ const RowEvent = props => {
       <Card.Content extra>
         <span className="card_icons">
           <Icon name="clock" />
-          {moment(props.time).format("h:mm A, ddd MMM Do 'YY")}
+          {format(props.time, "h:mm A, ddd MMM Do 'YY")}
         </span>
         <span className="card_icons">
           <Icon name="users" />
diff --git a/hocs/public-page.js b/hocs/public-page.js
index 59252aa12..f03453572 100644
--- a/hocs/public-page.js
+++ b/hocs/public-page.js
@@ -1,42 +1,16 @@
 import React from 'react';
 
-import redirect from '../utils/redirect';
-import { authenticate } from '../utils/authenticate';
 import Header from '../components/header';
 import Footer from '../components/footer';
 
 export default Page => {
   return class PublicPage extends React.Component {
     static async getInitialProps(ctx) {
-      let authData;
       let initialProps = {};
-      const pathName = ctx.req ? ctx.req.url : ctx.pathname;
-      if (ctx.req && ctx.req.user) {
-        authData = ctx.req.user;
-      } else {
-        try {
-          authData = await authenticate(ctx);
-        } catch (err) {
-          console.error(err);
-          if (Page.getInitialProps) {
-            initialProps = await Page.getInitialProps(ctx);
-          }
-          return { ...initialProps };
-        }
-      }
-
-      if (authData) {
-        if (pathName === '/login') {
-          return redirect(ctx, '/profile');
-        }
-      }
       if (Page.getInitialProps) {
         initialProps = await Page.getInitialProps(ctx);
       }
-      if (!authData) {
-        return { ...initialProps };
-      }
-      return { ...authData, ...initialProps };
+      return { ...initialProps };
     }
     render() {
       return (
diff --git a/hocs/secret-page.js b/hocs/secret-page.js
deleted file mode 100644
index 27feeef6f..000000000
--- a/hocs/secret-page.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import React from 'react';
-
-import redirect from '../utils/redirect';
-import { authenticate } from '../utils/authenticate';
-import Header from '../components/header';
-import Footer from '../components/footer';
-
-export default Page => {
-  return class SecretPage extends React.Component {
-    static async getInitialProps(ctx) {
-      let authData;
-      let initialProps = {};
-      const pathName = ctx.req ? ctx.req.url : ctx.pathname;
-      if (ctx.req && ctx.req.user) {
-        authData = ctx.req.user;
-      } else {
-        try {
-          authData = await authenticate(ctx);
-        } catch (err) {
-          console.log(err);
-          return redirect(ctx);
-        }
-      }
-      if (
-        pathName === '/profile' &&
-        authData.interestedTechnologies.length === 0
-      ) {
-        return redirect(ctx, '/profile/new');
-      }
-      if (!authData) {
-        if (pathName === '/login') {
-          if (Page.getInitialProps) {
-            initialProps = await Page.getInitialProps(...ctx);
-          }
-          return { ...initialProps };
-        }
-        return redirect(ctx);
-      }
-      if (Page.getInitialProps) {
-        initialProps = await Page.getInitialProps({ ...ctx });
-      }
-      return { ...authData, ...initialProps };
-    }
-    render() {
-      return (
-        <div>
-          <Header {...this.props} title={'CoderPlex | Profile-New'} />
-          <Page {...this.props} />
-          <Footer />
-        </div>
-      );
-    }
-  };
-};
diff --git a/next.config.js b/next.config.js
index 33283c586..2976dced7 100644
--- a/next.config.js
+++ b/next.config.js
@@ -4,12 +4,6 @@ module.exports = {
   webpack: (config, { dev }) => {
     /* Enable only in Production */
     if (!dev) {
-      // Preact
-      console.log('> Using Preact instead of React');
-      config.resolve.alias = {
-        react: 'preact-compat/dist/preact-compat',
-        'react-dom': 'preact-compat/dist/preact-compat',
-      };
       if (ANALYZE) {
         const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
         config.plugins.push(
@@ -23,4 +17,12 @@ module.exports = {
     }
     return config;
   },
+  exportPathMap() {
+    return {
+      '/': { page: '/' },
+      '/events': { page: '/events' },
+      '/learn': { page: '/learn' },
+      '/space': { page: '/space' },
+    };
+  },
 };
diff --git a/package.json b/package.json
index bf2e234a3..d171d6542 100644
--- a/package.json
+++ b/package.json
@@ -5,35 +5,26 @@
   "main": "index.js",
   "scripts": {
     "test": "xo",
-    "lint": "prettier 'utils/**/*.js' 'components/**/*.js' 'pages/**/*.js' 'lib/**/*.js' 'hocs/**/*.js' '*.js' --write --single-quote --print-width='80' --trailing-comma='all' && xo --fix",
+    "lint":
+      "prettier 'utils/**/*.js' 'components/**/*.js' 'pages/**/*.js' 'lib/**/*.js' 'hocs/**/*.js' '*.js' --write --single-quote --print-width='80' --trailing-comma='all' && xo --fix",
     "precommit": "lint-staged",
     "analyze": "cross-env ANALYZE=1 next build",
-    "dev": "cross-env NODE_ENV=development nodemon server.js -w server.js",
-    "dev:with-api": "cross-env WITH_API=1 nodemon server.js -w server.js",
-    "start": "cross-env NODE_ENV=production node server",
+    "dev": "cross-env NODE_ENV=development next",
+    "start": "cross-env NODE_ENV=production next start",
     "build": "next build",
-    "heroku-postbuild": "next build"
+    "export": "cross-env NODE_ENV=production yarn build && next export"
   },
   "xo": {
     "parser": "babel-eslint",
-    "extends": [
-      "prettier",
-      "prettier/react",
-      "plugin:react/recommended"
-    ],
-    "env": [
-      "browser",
-      "node"
-    ],
+    "extends": ["prettier", "prettier/react", "plugin:react/recommended"],
+    "env": ["browser", "node"],
     "rules": {
       "linebreak-style": 0,
       "react/display-name": 0,
       "react/prop-types": 0
     },
     "space:": 2,
-    "ignores": [
-      "next.config.js"
-    ]
+    "ignores": ["next.config.js"]
   },
   "lint-staged": {
     "*.js": [
@@ -44,22 +35,13 @@
   },
   "keywords": [],
   "author": "Vinay Puppal <me@vinaypuppal.com> (https://www.vinaypuppal.com/)",
-  "license": "MIT",
+  "license": "BSD",
   "dependencies": {
-    "axios": "^0.16.2",
-    "cookie-parser": "^1.4.3",
-    "express": "^4.15.3",
-    "feathers": "^2.1.7",
-    "feathers-authentication-client": "^0.3.3",
-    "feathers-hooks": "^2.0.2",
+    "date-fns": "1.29.0",
     "feathers-rest": "^1.8.0",
-    "isomorphic-unfetch": "^2.0.0",
-    "js-cookie": "^2.1.4",
-    "moment": "^2.19.1",
+    "isomorphic-unfetch": "2.0.0",
     "next": "^4.1.0",
     "nprogress": "^0.2.0",
-    "preact": "^8.2.1",
-    "preact-compat": "^3.16.0",
     "prop-types": "^15.5.10",
     "react": "^16.0.0",
     "react-count-down": "^1.1.0",
@@ -74,13 +56,19 @@
     "babel-eslint": "^7.2.3",
     "babel-plugin-lodash": "^3.2.11",
     "cross-env": "^5.0.2",
+    "cross-spawn": "5.1.0",
     "eslint-config-prettier": "^2.3.0",
     "eslint-plugin-react": "^7.1.0",
     "husky": "^0.14.3",
     "lint-staged": "^4.0.2",
-    "nodemon": "^1.11.0",
+    "normalize-url": "1.9.1",
+    "now": "8.3.10",
+    "octonode": "0.9.1",
     "prettier": "^1.7.0",
+    "travis-after-all": "1.4.5",
+    "url-regex": "4.1.1",
     "webpack-bundle-analyzer": "^2.8.3",
-    "xo": "^0.18.2"
+    "xo": "^0.18.2",
+    "yargs": "9.0.1"
   }
 }
diff --git a/pages/events.js b/pages/events.js
index e8801caad..4643fcf8b 100644
--- a/pages/events.js
+++ b/pages/events.js
@@ -1,6 +1,6 @@
 import React from 'react';
-import axios from 'axios';
-import { Card } from 'semantic-ui-react';
+import fetch from 'isomorphic-unfetch';
+import { Card, Divider, Dimmer, Loader } from 'semantic-ui-react';
 
 import publicPage from '../hocs/public-page';
 import {
@@ -10,102 +10,137 @@ import {
 } from '../utils/urls';
 import RowEvent from '../components/row-events';
 
-export default publicPage(
-  class Events extends React.Component {
-    static async getInitialProps() {
-      try {
-        const requestPastEvents = await axios.get(
-          `${reverseProxyCORS}${pastEventsMeetupURL}`,
-        );
-        const requestFutureEvents = await axios.get(
-          `${reverseProxyCORS}${futureEventsMeetupURL}`,
-        );
-        return {
-          pastEvents: requestPastEvents.data,
-          futureEvents: requestFutureEvents.data,
-        };
-      } catch (err) {
-        return {
-          pastEvents: 'err',
-          futureEvents: 'err',
-        };
-      }
+class Events extends React.Component {
+  state = {
+    pastEvents: null,
+    futureEvents: null,
+    fetchError: null,
+    loading: true,
+  };
+  async componentDidMount() {
+    try {
+      const pastEvents = await fetch(
+        `${reverseProxyCORS}${pastEventsMeetupURL}`,
+      ).then(res => {
+        if (res.ok) return res.json();
+        throw new Error('Failed to Retrieve Events');
+      });
+      const futureEvents = await fetch(
+        `${reverseProxyCORS}${futureEventsMeetupURL}`,
+      ).then(res => {
+        if (res.ok) return res.json();
+        throw new Error('Failed to Retrieve Events');
+      });
+      await this.setState({
+        pastEvents,
+        futureEvents,
+        fetchError: null,
+        loading: false,
+      });
+    } catch (err) {
+      console.log(err);
+      await this.setState({
+        pastEvents: null,
+        futureEvents: null,
+        fetchError: err.message,
+        loading: false,
+      });
     }
-
-    render() {
-      return (
-        <div>
-          <div className="top_banner_root">
-            <h1 className="top_banner_headline">Events</h1>
-            <h2>Because you cannot change the world alone</h2>
+  }
+  renderEvents() {
+    if (this.state.fetchError) {
+      return <div>{this.state.fetchError}</div>;
+    }
+    return (
+      <div>
+        <section>
+          <h2>Upcoming events</h2>
+          <div>
+            {this.state.futureEvents.map(event => (
+              <Card.Group key={event.id}>
+                <RowEvent
+                  name={event.name}
+                  yesCount={event.yes_rsvp_count}
+                  time={event.time}
+                  venue={event.venue}
+                  link={event.link}
+                  status={event.status}
+                />
+              </Card.Group>
+            ))}
+          </div>
+        </section>
+        <Divider />
+        <section>
+          <h2>Recent events</h2>
+          <div>
+            {this.state.pastEvents.map(event => (
+              <Card.Group key={event.id}>
+                <RowEvent
+                  key={event.id}
+                  name={event.name}
+                  yesCount={event.yes_rsvp_count}
+                  time={event.time}
+                  venue={event.venue}
+                  link={event.link}
+                  status={event.status}
+                />
+              </Card.Group>
+            ))}
           </div>
-          <main>
-            {this.props.pastEvents !== 'err' &&
-            this.props.futureEvents !== 'err' ? (
-              <div>
-                <h4>Upcoming events</h4>
-                <div>
-                  {this.props.futureEvents.map(event => (
-                    <Card.Group key={event.id}>
-                      <RowEvent
-                        name={event.name}
-                        yesCount={event.yes_rsvp_count}
-                        time={event.time}
-                        venue={event.venue}
-                        link={event.link}
-                        status={event.status}
-                      />
-                    </Card.Group>
-                  ))}
-                </div>
-                <h4>Recent events</h4>
-                <div>
-                  {this.props.pastEvents.map(event => (
-                    <Card.Group key={event.id}>
-                      <RowEvent
-                        key={event.id}
-                        name={event.name}
-                        yesCount={event.yes_rsvp_count}
-                        time={event.time}
-                        venue={event.venue}
-                        link={event.link}
-                        status={event.status}
-                      />
-                    </Card.Group>
-                  ))}
-                </div>
-              </div>
-            ) : (
-              <div>Failed to Retrieve Events</div>
-            )}
-          </main>
-          <style jsx>{`
-            main {
-              background-color: #ffffff;
-              padding-top: 30px;
-              padding-bottom: 30px;
-              padding-left: 30px;
-              padding-right: 30px;
-              min-height: calc(100vh - 70px);
-              display: flex;
-              justify-content: center;
-              align-items: center;
-              flex-direction: column;
-            }
-            .top_banner_root {
-              background-color: #f4f7fb;
-              min-height: 200px;
-              text-align: center;
-            }
-            .top_banner_headline {
-              padding-top: 20px;
-              font-size: 4em;
-              color: #df1cb5;
-              font-weight: 900;
-            }
-          `}</style>
+        </section>
+        <style jsx>{`
+          section {
+            margin: 50px 0;
+          }
+        `}</style>
+      </div>
+    );
+  }
+  render() {
+    return (
+      <div>
+        <div className="top_banner_root">
+          <h1 className="top_banner_headline">Events</h1>
+          <h2>Because you cannot change the world alone</h2>
         </div>
-      );
-    }
-  },
-);
+        <main>
+          {this.state.loading ? (
+            <Dimmer active>
+              <Loader indeterminate>Fetching Events</Loader>
+            </Dimmer>
+          ) : (
+            this.renderEvents()
+          )}
+        </main>
+        <style jsx>{`
+          main {
+            background-color: #ffffff;
+            padding-top: 30px;
+            padding-bottom: 30px;
+            padding-left: 30px;
+            padding-right: 30px;
+            min-height: calc(100vh - 70px);
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            flex-direction: column;
+          }
+          .top_banner_root {
+            background-color: #f4f7fb;
+            min-height: 200px;
+            text-align: center;
+          }
+          .top_banner_headline {
+            padding-top: 20px;
+            font-size: 4em;
+            color: #df1cb5;
+            font-weight: 900;
+          }
+        `}</style>
+      </div>
+    );
+  }
+}
+
+export default publicPage(Events);
diff --git a/pages/index.js b/pages/index.js
index 3ba396670..4023f81ca 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -22,7 +22,11 @@ class Home extends React.Component {
           }
           .about__container {
             max-width: 1280px;
+            min-height: calc(100vh - 260px);
             margin: 0 auto;
+            display: flex;
+            justify-content: center;
+            align-items: center;
           }
           .about__content img {
             width: 100%;
diff --git a/pages/jobs/index.js b/pages/jobs/index.js
deleted file mode 100644
index 7ff3d1dcc..000000000
--- a/pages/jobs/index.js
+++ /dev/null
@@ -1,383 +0,0 @@
-import React from 'react';
-import Link from 'next/link';
-import { Input, Dropdown, Button, Header, Icon } from 'semantic-ui-react';
-import FaBuilding from 'react-icons/lib/fa/building';
-import FaLocation from 'react-icons/lib/fa/map-marker';
-// Import FaArrowRight from 'react-icons/lib/fa/angle-right'
-
-import publicPage from '../../hocs/public-page';
-import { client as feathersClient } from '../../utils/feathers-client';
-import truncateString from '../../utils';
-
-const _jobTypes = ['FullTime', 'PartTime', 'Remote', 'Consulting', 'Freelance'];
-
-const jobTypes = _jobTypes.map(type => ({
-  key: type,
-  text: type,
-  value: type,
-}));
-
-const technologies = [
-  { key: 'all', text: 'All', value: 'all' },
-  { key: 'angular', text: 'Angular', value: 'angular' },
-  { key: 'css', text: 'CSS', value: 'css' },
-  { key: 'design', text: 'Graphic Design', value: 'design' },
-  { key: 'ember', text: 'Ember', value: 'ember' },
-  { key: 'html', text: 'HTML', value: 'html' },
-  { key: 'ia', text: 'Information Architecture', value: 'ia' },
-  { key: 'javascript', text: 'Javascript', value: 'javascript' },
-  { key: 'meteor', text: 'Meteor', value: 'meteor' },
-  { key: 'node', text: 'NodeJS', value: 'node' },
-  { key: 'python', text: 'Python', value: 'python' },
-  { key: 'rails', text: 'Rails', value: 'rails' },
-  { key: 'react', text: 'React', value: 'react' },
-  { key: 'ruby', text: 'Ruby', value: 'ruby' },
-  { key: 'ui', text: 'UI Design', value: 'ui' },
-  { key: 'ux', text: 'User Experience', value: 'ux' },
-];
-
-const Jobs = props => (
-  <div>
-    <main>
-      <div className="header">
-        <h1>Find your next job</h1>
-        <h4>Imagine what you could be working on.</h4>
-        <div className="inputs">
-          <Input
-            className="search-input"
-            size="large"
-            icon="search"
-            placeholder="Search For Open Positions"
-          />
-        </div>
-      </div>
-      <section className="jobs">
-        <div className="jobs__filter">
-          <Link href="/jobs/new">
-            <Button className="new__job" as="a" primary>
-              Post New Job
-            </Button>
-          </Link>
-          <Header className="no-m">
-            <Icon name="filter" />
-
-            <Header.Content>
-              Show me jobs by
-              {'  '}
-              <Dropdown
-                scrolling
-                inline
-                options={technologies}
-                defaultValue={technologies[0].value}
-              />{' '}
-              technologie/s and {'  '}
-              <Dropdown
-                inline
-                options={jobTypes}
-                defaultValue={jobTypes[0].value}
-              />{' '}
-              jobs
-            </Header.Content>
-          </Header>
-        </div>
-        <div className="jobs__container">
-          <div className="jobs__content">
-            <div className="jobs__right">
-              {props.jobs.map(job => {
-                return (
-                  <div key={job.id} className="job">
-                    <h3 className="job__title">{job.title}</h3>
-                    <div className="job__meta">
-                      <a target="_blank" href={job.companyDetails.website}>
-                        <FaBuilding size={15} />
-                        {job.companyDetails.name}
-                      </a>{' '}
-                      {' '}
-                      <a
-                        rel="noopener noreferrer"
-                        target="_blank"
-                        href="https://maps.google.com"
-                      >
-                        <FaLocation size={15} />
-                        {job.companyDetails.location}
-                      </a>
-                    </div>
-                    <div className="job__desc">
-                      {truncateString(job.description, 100)}
-                    </div>
-                    <ul className="job__skils">
-                      {job.requiredTechnologies.map(skill => (
-                        <li key={skill}>{skill}</li>
-                      ))}
-                    </ul>
-                    <div className="job__cta">
-                      <div className="job__type">{job.jobType}</div>
-                      <div className="job__salary">
-                        {typeof job.payScale === 'string'
-                          ? `${job.payScale}`
-                          : `$ ${Math.floor(
-                              job.payScale.from,
-                            )}k to ${Math.floor(job.payScale.to)}k`}
-                      </div>
-                      <Link href="/projects">
-                        <a>More Details</a>
-                      </Link>
-                    </div>
-                  </div>
-                );
-              })}
-            </div>
-            {/* <div className="jobs__more">
-              <Link href="/jobs">
-                <a>View More <FaArrowRight size={20} /></a>
-              </Link>
-            </div> */}
-          </div>
-        </div>
-      </section>
-    </main>
-    <style jsx>{`
-      main {
-        min-height: calc(100vh - 70px);
-        background: #fafafa;
-        color: #314159;
-      }
-      .header {
-        height: 250px;
-        width: 100%;
-        padding: 20px;
-        background: #eee;
-        display: flex;
-        justify-contnet: center;
-        align-items: center;
-        flex-direction: column;
-        position: relative;
-      }
-      .header h1 {
-        font-size: 5rem;
-        margin-bottom: 0.5rem;
-        font-family: inherit;
-        font-weight: 500;
-        line-height: 1.1;
-      }
-      .header h4 {
-        font-size: 1.5rem;
-        margin-bottom: 0.5rem;
-        font-family: inherit;
-        font-weight: 500;
-        line-height: 1.1;
-        color: rgba(49, 65, 89, 0.6);
-      }
-      .inputs {
-        margin-top: 20px;
-        display: flex;
-        width: 45%;
-        justify-content: space-between;
-      }
-      .inputs :global(.search-input) {
-        width: 100%;
-      }
-      .jobs__container {
-        max-width: 1280px;
-        margin: 0 auto;
-      }
-      .jobs__filter {
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        padding: 10px;
-        background: #ddd;
-        position: relative;
-      }
-      .jobs__filter :global(.new__job) {
-        position: absolute;
-        top: 5px;
-        right: 100px;
-      }
-      .jobs__filter :global(.no-m) {
-        margin: 0;
-      }
-      .jobs__content {
-        padding: 0 20px;
-      }
-      .jobs__right {
-        display: flex;
-        flex-wrap: wrap;
-        justify-content: center;
-      }
-      .jobs__left p {
-        color: #666;
-        font-size: 20px;
-        line-height: 1.4;
-        text-align: center;
-        max-width: 600px;
-        margin: 0 auto;
-        font-weight: 300;
-      }
-      .job {
-        background: #fff;
-        padding: 20px;
-        width: 400px;
-        box-shadow: 0 2px 2px 0 rgba(63, 81, 181, 0.14);
-        border-radius: 8px;
-        margin: 20px;
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        flex-direction: column;
-      }
-      .job {
-        min-width: 460px;
-        color: #314159;
-      }
-      .job__title {
-        margin: 0;
-        padding: 0 0 10px 0;
-        display: flex;
-        flex-direction: column;
-        color: #314159;
-      }
-      .job__title {
-        flex-direction: row;
-        justify-content: center;
-        align-items: center;
-        margin: 0;
-        padding: 0;
-      }
-      .job__meta {
-        margin: 10px 0 5px 0;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-      }
-      .job__meta a {
-        color: #888;
-        text-decoration: none;
-        font-weight: 400;
-        margin: 0 10px;
-      }
-      .job__type,
-      .job__salary {
-        border-radius: 20px;
-        padding: 8px;
-        font-size: 14px;
-        color: #00df90;
-        border: 1px solid #00df90;
-      }
-      .job__desc {
-        padding: 10px 0;
-        color: #888;
-        text-align: center;
-      }
-      .job__cta a,
-      .job__cta {
-        display: flex;
-        justify-content: center;
-      }
-      .job__cta {
-        padding-top: 10px;
-        justify-content: flex-end;
-      }
-      .job__cta {
-        justify-content: space-around;
-        align-items: center;
-      }
-      .job__cta a {
-        text-decoration: none;
-        padding: 10px 20px;
-        color: #fff;
-        font-size: 16px;
-        text-transform: uppercase;
-        background: #00df90;
-        border-radius: 4px;
-        box-shadow: 0 2px 4px rgba(61, 71, 82, 0.1);
-        cursor: pointer;
-      }
-      .job__cta a:hover {
-        background: #01bf7c;
-      }
-      .job__skils {
-        margin: 0;
-        padding: 0;
-        list-style: none;
-        display: flex;
-        flex-wrap: wrap;
-        justify-content: center;
-      }
-      .job__skils li {
-        margin: 10px;
-        border-radius: 20px;
-        padding: 8px 10px;
-        font-size: 12px;
-        color: #888;
-        border: 2px solid #e1e7f5;
-      }
-      .jobs__more {
-        display: flex;
-        justify-content: center;
-        margin: 10px 0;
-      }
-      .jobs__more a {
-        text-decoration: none;
-        color: #00df90;
-        display: flex;
-        align-items: center;
-        padding: 20px 0;
-      }
-      .jobs__more a:hover {
-        color: teal;
-        text-decoration: underline;
-      }
-      @media (max-width: 1000px) {
-        .jobs__left p {
-          font-size: 22px;
-        }
-      }
-      @media (max-width: 580px) {
-        .jobs h2 {
-          font-weight: 400;
-        }
-        .jobs__left p {
-          font-size: 16px;
-        }
-        .job {
-          min-width: 100%;
-          width: 100%;
-          padding: 15px;
-        }
-        .job__title {
-          font-size: 20px;
-          text-align: center;
-        }
-        .job__meta {
-          flex-wrap: wrap;
-        }
-        .job__meta a {
-          margin: 5px;
-        }
-        .job__cta a,
-        .job__type,
-        .job__salary {
-          font-size: 12px;
-          padding: 8px;
-        }
-      }
-    `}</style>
-  </div>
-);
-
-Jobs.getInitialProps = async () => {
-  const jobs = await feathersClient
-    .service('jobs')
-    .find({
-      query: {
-        $sort: {
-          createdAt: -1,
-        },
-      },
-    })
-    .then(res => res.data);
-  return { jobs };
-};
-
-export default publicPage(Jobs);
diff --git a/pages/jobs/new.js b/pages/jobs/new.js
deleted file mode 100644
index 103303b17..000000000
--- a/pages/jobs/new.js
+++ /dev/null
@@ -1,377 +0,0 @@
-import React from 'react';
-import Router from 'next/router';
-import {
-  Container,
-  Message,
-  Form,
-  Grid,
-  Input,
-  TextArea,
-  Select,
-  Dropdown,
-} from 'semantic-ui-react';
-
-import secretPage from '../../hocs/secret-page';
-import { client as feathersClient } from '../../utils/feathers-client';
-
-const _jobTypes = ['FullTime', 'PartTime', 'Remote', 'Consulting', 'Freelance'];
-
-const jobTypes = _jobTypes.map(type => ({
-  key: type,
-  text: type,
-  value: type,
-}));
-
-const technologies = [
-  { key: 'angular', text: 'Angular', value: 'angular' },
-  { key: 'css', text: 'CSS', value: 'css' },
-  { key: 'design', text: 'Graphic Design', value: 'design' },
-  { key: 'ember', text: 'Ember', value: 'ember' },
-  { key: 'html', text: 'HTML', value: 'html' },
-  { key: 'ia', text: 'Information Architecture', value: 'ia' },
-  { key: 'javascript', text: 'Javascript', value: 'javascript' },
-  { key: 'meteor', text: 'Meteor', value: 'meteor' },
-  { key: 'node', text: 'NodeJS', value: 'node' },
-  { key: 'python', text: 'Python', value: 'python' },
-  { key: 'rails', text: 'Rails', value: 'rails' },
-  { key: 'react', text: 'React', value: 'react' },
-  { key: 'ruby', text: 'Ruby', value: 'ruby' },
-  { key: 'ui', text: 'UI Design', value: 'ui' },
-  { key: 'ux', text: 'User Experience', value: 'ux' },
-];
-
-class PostJob extends React.Component {
-  state = {
-    title: '',
-    description: '',
-    payScale: '',
-    jobType: '',
-    technologies,
-    requiredTechnologies: [],
-    companyName: '',
-    companyLocation: '',
-    companyWebsite: '',
-    companyEmail: '',
-    errors: [],
-    errorMessage: '',
-    loading: false,
-  };
-  handelForm = e => {
-    e.preventDefault();
-    const {
-      title,
-      description,
-      payScale,
-      jobType,
-      requiredTechnologies,
-      companyName,
-      companyLocation,
-      companyWebsite,
-      companyEmail,
-    } = this.state;
-    if (!title) {
-      this.setState({
-        errors: ['title'],
-      });
-      return;
-    }
-    if (!description) {
-      this.setState({
-        errors: ['description'],
-      });
-      return;
-    }
-    if (!jobType) {
-      this.setState({
-        errors: ['jobType'],
-      });
-      return;
-    }
-    if (!payScale) {
-      this.setState({
-        errors: ['payScale'],
-      });
-      return;
-    }
-    if (requiredTechnologies.length === 0) {
-      this.setState({
-        errors: ['requiredTechnologies'],
-      });
-      return;
-    }
-    if (!companyName) {
-      this.setState({
-        errors: ['companyName'],
-      });
-      return;
-    }
-    if (!companyWebsite) {
-      this.setState({
-        errors: ['companyWebsite'],
-      });
-      return;
-    }
-    if (!companyEmail) {
-      this.setState({
-        errors: ['companyEmail'],
-      });
-      return;
-    }
-    if (!companyLocation) {
-      this.setState({
-        errors: ['companyLocation'],
-      });
-      return;
-    }
-    this.setState({ loading: true });
-    const companyDetails = {
-      name: companyName,
-      location: companyLocation,
-      website: companyWebsite,
-      email: companyEmail,
-    };
-    feathersClient
-      .service('jobs')
-      .create({
-        title,
-        description,
-        payScale,
-        jobType,
-        requiredTechnologies,
-        companyDetails,
-      })
-      .then(job => {
-        console.log(job);
-        return Router.push('/jobs').then(() => {
-          this.setState({
-            loading: false,
-            title: '',
-            description: '',
-            payScale: '',
-            jobType: '',
-            requiredTechnologies: '',
-            companyName: '',
-            companyLocation: '',
-            companyWebsite: '',
-            companyEmail: '',
-          });
-        });
-      })
-      .catch(err => {
-        console.log(err);
-        this.setState({
-          loading: false,
-          errors: [`${e.message}`],
-          errorMessage: e.message,
-        });
-      });
-    console.log('all don');
-  };
-  render() {
-    return (
-      <div>
-        <main>
-          <Container text>
-            <Message info>
-              <Message.Header>Hi, {this.props.username} :)</Message.Header>
-              <p>Fill the below details to post new job opening</p>
-            </Message>
-            <Form
-              loading={this.state.loading}
-              onSubmit={this.handelForm}
-              error={Boolean(this.state.errors.length)}
-            >
-              <Grid stackable columns={2} divided>
-                <Grid.Row>
-                  <Grid.Column>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Title"
-                        placeholder={`${this.state.errors.includes('title')
-                          ? ''
-                          : 'Job Title'}`}
-                        value={this.state.title}
-                        onChange={e => this.setState({ title: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Field
-                      required
-                      control={TextArea}
-                      style={{ height: '120px !important' }}
-                      label="Description"
-                      placeholder={`${this.state.errors.includes('description')
-                        ? ''
-                        : 'Job description'}`}
-                      value={this.state.description}
-                      onChange={e =>
-                        this.setState({ description: e.target.value })}
-                    />
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        control={Select}
-                        label="JobType"
-                        options={jobTypes}
-                        required
-                        placeholder={`${this.state.errors.includes('jobType')
-                          ? ''
-                          : 'FullTime | PartTime ...'}`}
-                        value={this.state.jobType}
-                        onChange={(e, data) =>
-                          this.setState({ jobType: data.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        search
-                        selection
-                        fluid
-                        multiple
-                        allowAdditions
-                        control={Dropdown}
-                        options={this.state.technologies}
-                        required
-                        label="Technologies Required"
-                        placeholder={`${this.state.errors.includes(
-                          'requiredTechnologies',
-                        )
-                          ? ''
-                          : 'Javascript, PHP, Python,...'}`}
-                        value={this.state.requiredTechnologies}
-                        onChange={(e, data) =>
-                          this.setState({ requiredTechnologies: data.value })}
-                        onAddItem={(e, { value }) =>
-                          this.setState({
-                            technologies: [
-                              { text: value, value, key: value },
-                              ...this.state.technologies,
-                            ],
-                          })}
-                      />
-                    </Form.Group>
-                  </Grid.Column>
-                  <Grid.Column>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Pay Scale (per annum in INR)"
-                        placeholder={`${this.state.errors.includes('payScale')
-                          ? ''
-                          : '6.2L per annum'}`}
-                        value={this.state.payScale}
-                        onChange={e =>
-                          this.setState({ payScale: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Company Name"
-                        placeholder={`${this.state.errors.includes(
-                          'companyName',
-                        )
-                          ? ''
-                          : 'TCS'}`}
-                        value={this.state.companyName}
-                        onChange={e =>
-                          this.setState({ companyName: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Company Location"
-                        placeholder={`${this.state.errors.includes(
-                          'companyLocation',
-                        )
-                          ? ''
-                          : 'Hyderabad, Telangana'}`}
-                        value={this.state.companyLocation}
-                        onChange={e =>
-                          this.setState({ companyLocation: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Company Website"
-                        placeholder={`${this.state.errors.includes(
-                          'companyWebsite',
-                        )
-                          ? ''
-                          : 'https://infosys.com'}`}
-                        value={this.state.companyWebsite}
-                        onChange={e =>
-                          this.setState({ companyWebsite: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        control={Input}
-                        label="Contact Email"
-                        placeholder={`${this.state.errors.includes(
-                          'companyEmail',
-                        )
-                          ? ''
-                          : 'hr@infosys.com'}`}
-                        value={this.state.companyEmail}
-                        onChange={e =>
-                          this.setState({ companyEmail: e.target.value })}
-                      />
-                    </Form.Group>
-                  </Grid.Column>
-                </Grid.Row>
-              </Grid>
-              {this.state.errors.length ? (
-                <Message error>
-                  <Message.Header>
-                    Error:{' '}
-                    {this.state.errorMessage || 'Fill the required * fields'}
-                  </Message.Header>
-                  {!this.state.errorMessage && (
-                    <p>
-                      <strong>{this.state.errors.join(',')}</strong> is/are
-                      required fields
-                    </p>
-                  )}
-                </Message>
-              ) : (
-                ''
-              )}
-              <Form.Group widths="equal">
-                <Form.Button
-                  loading={this.state.loading}
-                  size="big"
-                  primary
-                  floated="right"
-                >
-                  Post Job
-                </Form.Button>
-              </Form.Group>
-            </Form>
-          </Container>
-        </main>
-        <style jsx>{`
-          main {
-            min-height: calc(100vh - 70px);
-            background: #fff;
-            padding: 30px 0;
-            color: #314159;
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            flex-direction: column;
-          }
-        `}</style>
-      </div>
-    );
-  }
-}
-
-export default secretPage(PostJob);
diff --git a/pages/login.js b/pages/login.js
deleted file mode 100644
index 02db74c6c..000000000
--- a/pages/login.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import React from 'react';
-import { Button, Segment } from 'semantic-ui-react';
-
-import { login } from '../utils/authenticate';
-import publicPage from '../hocs/public-page';
-
-export default publicPage(
-  class Login extends React.Component {
-    state = {
-      githubLoading: false,
-      linkedinLoading: false,
-    };
-    render() {
-      return (
-        <div>
-          <main>
-            <Segment padded="huge" stacked textAlign="center">
-              <h1>Welcome to coderplex</h1>
-              <p>Please login to coderplex or create an account</p>
-              <div className="btn-container">
-                <Button
-                  onClick={() => {
-                    this.setState({ githubLoading: true });
-                    login('github', this.props.url);
-                  }}
-                  loading={this.state.githubLoading}
-                  fluid
-                  size="huge"
-                  content="Github"
-                  icon="github"
-                  labelPosition="left"
-                />
-              </div>
-              <div className="btn-container">
-                <Button
-                  onClick={() => {
-                    this.setState({ linkedinLoading: true });
-                    login('linkedin', this.props.url);
-                  }}
-                  loading={this.state.linkedinLoading}
-                  fluid
-                  size="huge"
-                  color="linkedin"
-                  content="LinkedIn"
-                  icon="linkedin"
-                  labelPosition="left"
-                />
-              </div>
-              <p>Along with 300+ community members.</p>
-            </Segment>
-          </main>
-          <style jsx>{`
-            main {
-              display: flex;
-              flex-direction: column;
-              justify-content: center;
-              align-items: center;
-              color: #314159;
-              min-height: calc(100vh - 100px);
-              font-weight: 400;
-            }
-            h1 {
-              font-weight: 400;
-            }
-            .btn-container {
-              width: 300px;
-              margin: 20px auto;
-            }
-            @media (max-width: 600px) {
-              main {
-                min-height: auto;
-              }
-            }
-          `}</style>
-        </div>
-      );
-    }
-  },
-);
diff --git a/pages/profile/edit.js b/pages/profile/edit.js
deleted file mode 100644
index 024b21c90..000000000
--- a/pages/profile/edit.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import React from 'react';
-
-import Icon from '../../components/icon';
-import publicPage from '../../hocs/public-page';
-
-export default publicPage(() => (
-  <div>
-    <main>
-      <Icon />
-      <h3>Under Construction, Coming Soon!...</h3>
-    </main>
-    <style jsx>{`
-      main {
-        min-height: calc(100vh - 70px);
-        background: #f4f7fb;
-        color: #314159;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-direction: column;
-      }
-    `}</style>
-  </div>
-));
diff --git a/pages/profile/index.js b/pages/profile/index.js
deleted file mode 100644
index 8070d0730..000000000
--- a/pages/profile/index.js
+++ /dev/null
@@ -1,196 +0,0 @@
-import React from 'react';
-import Link from 'next/link';
-import { Grid, Button, Image, Divider, Tab } from 'semantic-ui-react';
-
-import secretPage from '../../hocs/secret-page';
-import Icon from '../../components/icon';
-
-const TabsContent = [
-  {
-    menuItem: 'Jobs',
-    render: () => (
-      <Tab.Pane attached={false}>
-        <div className="projects">
-          <h3>No Jobs Posted By You</h3>
-          <Icon />
-          <Link href="/jobs/new">
-            <Button as="a" primary>
-              Post New Job
-            </Button>
-          </Link>
-        </div>
-        <style jsx>{`
-          .projects {
-            display: flex;
-            flex-direction: column;
-            width: 100%;
-            height: 400px;
-            justify-content: space-around;
-            align-items: center;
-          }
-        `}</style>
-      </Tab.Pane>
-    ),
-  },
-  {
-    menuItem: 'Projects',
-    render: () => (
-      <Tab.Pane attached={false}>
-        <div className="projects">
-          <h3>No Projects Found</h3>
-          <Icon />
-          <Link href="/projects/new">
-            <Button as="a" primary>
-              Add New Project
-            </Button>
-          </Link>
-        </div>
-        <style jsx>{`
-          .projects {
-            display: flex;
-            flex-direction: column;
-            width: 100%;
-            height: 400px;
-            justify-content: space-around;
-            align-items: center;
-          }
-        `}</style>
-      </Tab.Pane>
-    ),
-  },
-];
-
-const Profile = props => (
-  <div>
-    <main>
-      <Grid container>
-        <Grid.Row>
-          <Grid.Column width={4}>
-            <Image src={props.avatarUrl} size="medium" shape="circular" />
-          </Grid.Column>
-          <Grid.Column width={9}>
-            <h1>{props.displayName}</h1>
-            <p>{props.bio}</p>
-            <p>
-              <strong>{props.profession} : </strong>
-              {props.company || 'Yes'}
-            </p>
-            <p>
-              <strong>From : </strong> {props.location || ''}
-            </p>
-            <p>
-              <strong>Interested Technologies : </strong>{' '}
-              {props.interestedTechnologies.join(', ')}
-            </p>
-            <p>
-              <strong>Familliar Technologies : </strong>{' '}
-              {props.familiarTechnologies.join(', ')}
-            </p>
-          </Grid.Column>
-          <Grid.Column width={3}>
-            <Link href="/profile/edit">
-              <Button as="a" primary>
-                Edit
-              </Button>
-            </Link>
-          </Grid.Column>
-        </Grid.Row>
-        <Divider />
-        <Grid.Row divided>
-          <Grid.Column width={3}>
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.github}
-                as="a"
-                color="black"
-                icon="github"
-                content="Github"
-              />
-            </div>
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.linkedin}
-                as="a"
-                color="linkedin"
-                icon="linkedin"
-                content="LinkedIn"
-              />
-            </div>
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.facebook}
-                as="a"
-                color="facebook"
-                icon="facebook"
-                content="Facebook"
-              />
-            </div>
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.twitter}
-                as="a"
-                color="twitter"
-                icon="twitter"
-                content="Twitter"
-              />
-            </div>
-
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.codepen}
-                as="a"
-                color="white"
-                icon="codepen"
-                content="Codepen"
-              />
-            </div>
-            <div className="btnContainer">
-              <Button
-                fluid
-                href={props.socialLinks.blog}
-                as="a"
-                color="red"
-                icon="linkify"
-                content="Blog"
-              />
-            </div>
-          </Grid.Column>
-          <Grid.Column width={13}>
-            <Tab menu={{ pointing: true }} panes={TabsContent} />
-          </Grid.Column>
-        </Grid.Row>
-      </Grid>
-    </main>
-    <style jsx>{`
-      main {
-        min-height: calc(100vh - 70px);
-        background: #fff;
-        padding: 30px 0;
-        color: #314159;
-      }
-      p {
-        font-size: 18px;
-        text-transform: capitalize;
-      }
-      .btnContainer {
-        margin: 10px 0;
-        text-align: center;
-      }
-      .projects {
-        display: flex;
-        flex-direction: column;
-        width: 100%;
-        height: 400px;
-        justify-content: space-around;
-        align-items: center;
-      }
-    `}</style>
-  </div>
-);
-
-export default secretPage(Profile);
diff --git a/pages/profile/new.js b/pages/profile/new.js
deleted file mode 100644
index 3dd925af1..000000000
--- a/pages/profile/new.js
+++ /dev/null
@@ -1,434 +0,0 @@
-import React from 'react';
-import Router from 'next/router';
-import {
-  Container,
-  Message,
-  Form,
-  Input,
-  Dropdown,
-  TextArea,
-  Select,
-  Grid,
-} from 'semantic-ui-react';
-
-import { client as feathersClient } from '../../utils/feathers-client';
-import secretPage from '../../hocs/secret-page';
-
-const technologies = [
-  { key: 'angular', text: 'Angular', value: 'angular' },
-  { key: 'css', text: 'CSS', value: 'css' },
-  { key: 'design', text: 'Graphic Design', value: 'design' },
-  { key: 'ember', text: 'Ember', value: 'ember' },
-  { key: 'html', text: 'HTML', value: 'html' },
-  { key: 'ia', text: 'Information Architecture', value: 'ia' },
-  { key: 'javascript', text: 'Javascript', value: 'javascript' },
-  { key: 'meteor', text: 'Meteor', value: 'meteor' },
-  { key: 'node', text: 'NodeJS', value: 'node' },
-  { key: 'python', text: 'Python', value: 'python' },
-  { key: 'rails', text: 'Rails', value: 'rails' },
-  { key: 'react', text: 'React', value: 'react' },
-  { key: 'ruby', text: 'Ruby', value: 'ruby' },
-  { key: 'ui', text: 'UI Design', value: 'ui' },
-  { key: 'ux', text: 'User Experience', value: 'ux' },
-];
-
-const professionOptions = [
-  { key: 's', text: 'Student', value: 'student' },
-  { key: 'w', text: 'Working', value: 'working' },
-  { key: 'h', text: 'Available For Hire', value: 'hirable' },
-];
-
-class Profile extends React.Component {
-  state = {
-    displayName: '',
-    contactNumber: '',
-    bio: '',
-    profession: '',
-    company: '',
-    technologies,
-    interestedTechnologies: [],
-    familiarTechnologies: [],
-    github: '',
-    linkedin: '',
-    facebook: '',
-    codepen: '',
-    twitter: '',
-    blog: '',
-    discord: '',
-    errors: [],
-    loading: false,
-  };
-  componentDidMount() {
-    this.setState({
-      displayName: this.props.displayName || '',
-      contactNumber: this.props.contactNumber || '',
-      bio: this.props.bio || '',
-      profession: this.props.profession || '',
-      company: this.props.company || '',
-      interestedTechnologies: this.props.interestedTechnologies || [],
-      familiarTechnologies: this.props.familiarTechnologies || [],
-      github: this.props.socialLinks.github || '',
-      linkedin: this.props.socialLinks.linkedin || '',
-      facebook: this.props.socialLinks.facebook || '',
-      codepen: this.props.socialLinks.codepen || '',
-      twitter: this.props.socialLinks.twitter || '',
-      blog: this.props.socialLinks.blog || '',
-      discord: this.props.socialLinks.discord || '',
-    });
-  }
-  handelForm = e => {
-    e.preventDefault();
-    const {
-      displayName,
-      contactNumber,
-      bio,
-      profession,
-      company,
-      interestedTechnologies,
-      familiarTechnologies,
-      github,
-      linkedin,
-      facebook,
-      codepen,
-      twitter,
-      blog,
-      discord,
-    } = this.state;
-    console.log(this.state);
-    if (!displayName) {
-      this.setState({
-        errors: ['displayName'],
-      });
-      return;
-    }
-    if (!bio) {
-      this.setState({
-        errors: ['bio'],
-      });
-      return;
-    }
-    if (!profession) {
-      this.setState({
-        errors: ['profession'],
-      });
-      return;
-    }
-    if (profession === 'working' && !company) {
-      this.setState({
-        errors: ['company'],
-      });
-      return;
-    }
-    if (interestedTechnologies.length === 0) {
-      this.setState({
-        errors: ['interestedTechnologies'],
-      });
-      return;
-    }
-    this.setState({ loading: true });
-    feathersClient
-      .service('users')
-      .patch(this.props._id, {
-        displayName,
-        contactNumber,
-        bio,
-        profession,
-        company,
-        interestedTechnologies,
-        familiarTechnologies,
-        socialLinks: {
-          github,
-          linkedin,
-          facebook,
-          codepen,
-          twitter,
-          blog,
-          discord,
-        },
-      })
-      .then(user => {
-        this.setState({ loading: false });
-        console.log(user);
-        Router.push('/profile');
-      })
-      .catch(err => {
-        console.log(err);
-        this.setState({ loading: false });
-      });
-    console.log('all don');
-  };
-  render() {
-    return (
-      <div>
-        <main>
-          <Container text>
-            <Message info>
-              <Message.Header>Welcome {this.props.username} :)</Message.Header>
-              <p>Complete rest of your profile details</p>
-            </Message>
-            <Form
-              loading={this.state.loading}
-              onSubmit={this.handelForm}
-              error={Boolean(this.state.errors.length)}
-            >
-              <Grid stackable columns={2} divided>
-                <Grid.Row>
-                  <Grid.Column>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        error={this.state.errors.includes('displayName')}
-                        control={Input}
-                        label="Display Name"
-                        placeholder={`${this.state.errors.includes(
-                          'displayName',
-                        )
-                          ? ''
-                          : 'A Friendly Name'}`}
-                        value={this.state.displayName}
-                        onChange={e =>
-                          this.setState({ displayName: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Field
-                      required
-                      error={this.state.errors.includes('bio')}
-                      control={TextArea}
-                      label="Bio"
-                      style={{ height: '120px !important' }}
-                      value={this.state.bio}
-                      placeholder={`${this.state.errors.includes('bio')
-                        ? ''
-                        : 'Tell us more about you...'}`}
-                      onChange={e => this.setState({ bio: e.target.value })}
-                    />
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        control={Select}
-                        label="Profession"
-                        options={professionOptions}
-                        placeholder={`${this.state.errors.includes('profession')
-                          ? ''
-                          : 'Student | Working | Available For Hire'}`}
-                        required
-                        error={this.state.errors.includes('profession')}
-                        value={this.state.profession}
-                        onChange={(e, data) =>
-                          this.setState({ profession: data.value })}
-                      />
-                    </Form.Group>
-                    {this.state.profession === 'working' && (
-                      <Form.Group widths="equal">
-                        <Form.Field
-                          required
-                          error={this.state.errors.includes('companyName')}
-                          control={Input}
-                          label="Company Name"
-                          placeholder=""
-                          value={this.state.company}
-                          onChange={e =>
-                            this.setState({ company: e.target.value })}
-                        />
-                      </Form.Group>
-                    )}
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        required
-                        search
-                        selection
-                        fluid
-                        multiple
-                        allowAdditions
-                        error={this.state.errors.includes(
-                          'interestedTechnologies',
-                        )}
-                        control={Dropdown}
-                        label="Technologies You're Interested"
-                        options={this.state.technologies}
-                        placeholder={`${this.state.errors.includes(
-                          'interestedTechnologies',
-                        )
-                          ? ''
-                          : 'Javascript, PHP, Python,...'}`}
-                        value={this.state.interestedTechnologies}
-                        onChange={(e, { value }) =>
-                          this.setState({ interestedTechnologies: value })}
-                        onAddItem={(e, { value }) =>
-                          this.setState({
-                            technologies: [
-                              { text: value, value, key: value },
-                              ...this.state.technologies,
-                            ],
-                          })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        search
-                        selection
-                        fluid
-                        multiple
-                        allowAdditions
-                        control={Dropdown}
-                        label="Technologies You're Familliar"
-                        options={this.state.technologies}
-                        placeholder="Javascript, NodeJs, Mongodb,..."
-                        value={this.state.familiarTechnologies}
-                        onChange={(e, { value }) =>
-                          this.setState({ familiarTechnologies: value })}
-                        onAddItem={(e, { value }) =>
-                          this.setState({
-                            technologies: [
-                              { text: value, value, key: value },
-                              ...this.state.technologies,
-                            ],
-                          })}
-                      />
-                    </Form.Group>
-                  </Grid.Column>
-                  <Grid.Column>
-                    <Form.Field
-                      control={Input}
-                      label="Contact Number (optional)"
-                      placeholder="+919090909090"
-                      value={this.state.contactNumber}
-                      onChange={e =>
-                        this.setState({ contactNumber: e.target.value })}
-                    />
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        fluid
-                        type="url"
-                        control={Input}
-                        label="Social Presence (optional)"
-                        placeholder="github.com/username"
-                        value={this.state.github}
-                        onChange={e =>
-                          this.setState({ github: e.target.value })}
-                        icon="github"
-                        iconPosition="left"
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="linkedin"
-                        iconPosition="left"
-                        fluid
-                        type="url"
-                        control={Input}
-                        placeholder="linkedin.com/username"
-                        value={this.state.linkedin}
-                        onChange={e =>
-                          this.setState({ linkedin: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="facebook"
-                        iconPosition="left"
-                        fluid
-                        type="url"
-                        control={Input}
-                        placeholder="facebook.com/username"
-                        value={this.state.facebook}
-                        onChange={e =>
-                          this.setState({ facebook: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="twitter"
-                        iconPosition="left"
-                        fluid
-                        type="url"
-                        control={Input}
-                        placeholder="twitter.com/username"
-                        value={this.state.twitter}
-                        onChange={e =>
-                          this.setState({ twitter: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="codepen"
-                        iconPosition="left"
-                        fluid
-                        type="url"
-                        control={Input}
-                        placeholder="codepen.com/username"
-                        value={this.state.codepen}
-                        onChange={e =>
-                          this.setState({ codepen: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="linkify"
-                        iconPosition="left"
-                        fluid
-                        type="url"
-                        control={Input}
-                        placeholder="your website or blog url"
-                        value={this.state.blog}
-                        onChange={e => this.setState({ blog: e.target.value })}
-                      />
-                    </Form.Group>
-                    <Form.Group widths="equal">
-                      <Form.Field
-                        icon="laptop"
-                        iconPosition="left"
-                        fluid
-                        type="text"
-                        control={Input}
-                        placeholder="Discord Username"
-                        value={this.state.discord}
-                        onChange={e =>
-                          this.setState({ discord: e.target.value })}
-                      />
-                    </Form.Group>
-                  </Grid.Column>
-                </Grid.Row>
-              </Grid>
-              {this.state.errors.length ? (
-                <Message error>
-                  <Message.Header>
-                    Error: Fill the required * fields
-                  </Message.Header>
-                  <p>
-                    <strong>{this.state.errors.join(',')}</strong> is/are
-                    required fields
-                  </p>
-                </Message>
-              ) : (
-                ''
-              )}
-              <Form.Group widths="equal">
-                <Form.Button
-                  loading={this.state.loading}
-                  size="big"
-                  primary
-                  floated="right"
-                >
-                  Save
-                </Form.Button>
-              </Form.Group>
-            </Form>
-          </Container>
-        </main>
-        <style jsx>{`
-          main {
-            min-height: calc(100vh - 70px);
-            background: #fff;
-            padding: 30px 0;
-            color: #314159;
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            flex-direction: column;
-          }
-        `}</style>
-      </div>
-    );
-  }
-}
-export default secretPage(Profile);
diff --git a/pages/projects.js b/pages/projects.js
deleted file mode 100644
index 579be93c6..000000000
--- a/pages/projects.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import React from 'react';
-
-import Icon from '../components/icon';
-import publicPage from '../hocs/public-page';
-
-export default publicPage(() => (
-  <div>
-    <main>
-      <Icon />
-      <h3>Under Construction, Coming Soon!...</h3>
-    </main>
-    <style jsx>{`
-      main {
-        min-height: calc(100vh - 70px);
-        background: #f4f7fb;
-        color: #314159;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-direction: column;
-      }
-    `}</style>
-  </div>
-));
diff --git a/scripts/now.js b/scripts/now.js
new file mode 100644
index 000000000..159dad419
--- /dev/null
+++ b/scripts/now.js
@@ -0,0 +1,147 @@
+#! /usr/bin/env node
+/* eslint-disable camelcase */
+const github = require('octonode');
+const normalizeUrl = require('normalize-url');
+const spawn = require('cross-spawn');
+const travisAfterAll = require('travis-after-all');
+const urlRegex = require('url-regex');
+const argv = require('yargs').argv;
+
+const nowCli = require.resolve('now/download/dist/now');
+
+if (!process.env.CI || !process.env.TRAVIS) {
+  throw new Error('Could not detect Travis CI environment');
+}
+
+const githubToken = process.env.GH_TOKEN;
+const nowToken = process.env.NOW_TOKEN;
+
+if (!githubToken) {
+  throw new Error('Missing required environment variable GH_TOKEN');
+}
+
+if (!nowToken) {
+  throw new Error('Missing required environment variable NOW_TOKEN');
+}
+
+console.log(process.env.TRAVIS_PULL_REQUEST);
+
+const client = github.client(githubToken);
+const ghRepo = client.repo(process.env.TRAVIS_REPO_SLUG);
+let ghPR;
+
+if (process.env.TRAVIS_PULL_REQUEST) {
+  ghPR = client.issue(
+    process.env.TRAVIS_REPO_SLUG,
+    process.env.TRAVIS_PULL_REQUEST,
+  );
+}
+
+function noop() {}
+
+function getUrl(content) {
+  const urls = content.match(urlRegex()) || [];
+
+  return urls.map(url => normalizeUrl(url.trim().replace(/\.+$/, '')))[0];
+}
+
+function deploy(context, sha) {
+  ghRepo.status(
+    sha,
+    {
+      context,
+      state: 'pending',
+      description: `Δ Now ${context} deployment pending`,
+    },
+    noop,
+  );
+
+  const args = [
+    '--token',
+    nowToken,
+    '--team',
+    'coderplex',
+    '--no-clipboard',
+    '-n',
+    'coderplex-app',
+  ];
+  const alias = context === 'production' && process.env.NOW_ALIAS;
+  let stdout = '';
+
+  if (alias) {
+    args.push(...['--alias', alias]);
+  }
+
+  if (argv.p || argv.public) {
+    args.push(...['-p']);
+  }
+
+  if (argv.folder) {
+    args.push(argv.folder);
+  }
+
+  const child = spawn(nowCli, args);
+
+  if (!alias) {
+    child.stdout.on('data', data => {
+      stdout += data;
+    });
+  }
+
+  child.on('error', err => {
+    console.error(err);
+    ghRepo.status(
+      sha,
+      {
+        context,
+        state: 'error',
+        description: `Δ Now ${context} deployment failed. See Travis logs for details.`,
+      },
+      noop,
+    );
+  });
+
+  child.on('close', () => {
+    const target_url = alias || getUrl(stdout);
+    if (ghPR) {
+      const comment = `### New Δ Now ${context} deployment complete\n- ✅ **Build Passed**\n- 🚀 **Staging URL** : ${target_url}\n---\nNote: **This is autogenerated through Travis build**`;
+      console.log(comment);
+      ghPR.createComment(
+        {
+          body: comment,
+        },
+        (err, res) => {
+          console.log(err, res);
+        },
+      );
+    } else {
+      console.log('No PR found');
+    }
+    ghRepo.status(
+      sha,
+      {
+        context,
+        target_url,
+        state: 'success',
+        description: `Δ Now ${context} deployment complete`,
+      },
+      noop,
+    );
+  });
+}
+
+travisAfterAll((code, err) => {
+  // Don't do anything if there was an error of if the build returned a failing code
+  if (err || code) {
+    return;
+  }
+
+  switch (process.env.TRAVIS_EVENT_TYPE) {
+    case 'pull_request':
+      return deploy('staging', process.env.TRAVIS_PULL_REQUEST_SHA);
+    case 'push':
+      return deploy('production', process.env.TRAVIS_COMMIT);
+    default:
+      return '';
+  }
+});
diff --git a/server.js b/server.js
deleted file mode 100644
index e9f6750eb..000000000
--- a/server.js
+++ /dev/null
@@ -1,90 +0,0 @@
-const express = require('express');
-const next = require('next');
-const cookieParser = require('cookie-parser');
-const fetch = require('isomorphic-unfetch');
-const feathers = require('feathers/client');
-const hooks = require('feathers-hooks');
-const auth = require('feathers-authentication-client');
-const rest = require('feathers-rest/client');
-
-const baseUrl =
-  process.env.NODE_ENV === 'production' || process.env.WITH_API
-    ? `https://coderplex.org/api`
-    : 'http://localhost:4000';
-
-const dev = process.env.NODE_ENV !== 'production';
-const app = next({ dir: '.', dev });
-const handle = app.getRequestHandler();
-const feathersClient = feathers();
-
-feathersClient
-  .configure(rest(baseUrl).fetch(fetch))
-  .configure(hooks())
-  .configure(auth());
-
-app
-  .prepare()
-  .then(() => {
-    const server = express();
-    server.use(cookieParser());
-
-    // Handling login
-    server.use((req, res, next) => {
-      if (!req.query.token) return next();
-      res.cookie('feathers-jwt', req.query.token, {
-        expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 30),
-        httpOnly: false,
-      });
-      return res.redirect(req.query.next);
-    });
-
-    // Handling logout
-    server.use((req, res, next) => {
-      if (!req.query.logout) return next();
-      console.log('logout', req.query.logout);
-      res.cookie('feathers-jwt', null, {
-        expires: new Date(Date.now() - 1000),
-        httpOnly: false,
-      });
-
-      return res.redirect('/login');
-    });
-
-    // Get loggedIn user
-    server.use(async (req, res, next) => {
-      const token = req.cookies['feathers-jwt'];
-      console.log('****token****');
-      console.log(token);
-      console.log('****token****');
-      if (!token) return next();
-      try {
-        const { userId } = await feathersClient.passport.verifyJWT(token);
-        console.log('****USERID****');
-        console.log(userId);
-        console.log('****USERID****');
-        req.user = await fetch(`${baseUrl}/users/${userId}`, {
-          headers: {
-            Authorization: `${token}`,
-          },
-        }).then(res => res.json());
-        console.log('****ServerUSER****');
-        console.log(req.user);
-        console.log('****ServerUSER****');
-        next();
-      } catch (error) {
-        console.error(error);
-        next();
-      }
-    });
-
-    // Pass all routes to next.js handler
-    server.get('*', (req, res) => handle(req, res));
-
-    server.listen(process.env.PORT || 3000, err => {
-      if (err) throw err;
-      console.log('> App running on port', process.env.PORT || 3000);
-    });
-  })
-  .catch(ex => {
-    console.error(ex.stack);
-  });
diff --git a/utils/authenticate.js b/utils/authenticate.js
deleted file mode 100644
index f79a939fe..000000000
--- a/utils/authenticate.js
+++ /dev/null
@@ -1,55 +0,0 @@
-import Cookie from 'js-cookie';
-
-import { client as feathersClient, baseUrl } from './feathers-client';
-
-export function login(service, url) {
-  let href;
-  if (url.query.next) {
-    href = `${baseUrl}/auth/${service}?next=${url.query.next}`;
-  } else {
-    href = `${baseUrl}/auth/${service}`;
-  }
-  window.location.href = href;
-}
-
-export function logout() {
-  const href = `${window.location.href}?logout=1`;
-  window.localStorage.setItem('logout', Date.now());
-  feathersClient
-    .logout()
-    .then(() => {
-      feathersClient.set('user', null);
-      Cookie.remove('feathers-jwt', { path: '' });
-      window.location.href = href;
-    })
-    .catch(console.log);
-}
-
-export function authenticate() {
-  const token = Cookie.get('feathers-jwt');
-  console.log(token);
-  if (!token) {
-    feathersClient.set('user', null);
-    const e = new Error('not authenticated');
-    e.code = 401;
-    return Promise.reject(e);
-  }
-  return feathersClient
-    .authenticate({
-      strategy: 'jwt',
-      accessToken: token,
-    })
-    .then(response => {
-      return feathersClient.passport.verifyJWT(response.accessToken);
-    })
-    .then(payload => {
-      feathersClient.set('user', null);
-      return feathersClient.service('users').get(payload.userId);
-    })
-    .then(user => {
-      if (process.browser) {
-        feathersClient.set('user', user);
-      }
-      return user;
-    });
-}
diff --git a/utils/feathers-client.js b/utils/feathers-client.js
deleted file mode 100644
index 4363da18f..000000000
--- a/utils/feathers-client.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import fetch from 'isomorphic-unfetch';
-import feathers from 'feathers/client';
-import hooks from 'feathers-hooks';
-import auth from 'feathers-authentication-client';
-import rest from 'feathers-rest/client';
-
-const baseUrl =
-  process.env.NODE_ENV === 'production' || process.env.WITH_API
-    ? `https://coderplex.org/api`
-    : 'http://localhost:4000';
-
-const client = feathers();
-
-client
-  .configure(rest(baseUrl).fetch(fetch))
-  .configure(hooks())
-  .configure(auth());
-
-export { client, baseUrl };
diff --git a/utils/redirect.js b/utils/redirect.js
deleted file mode 100644
index 2187d488f..000000000
--- a/utils/redirect.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import Router from 'next/router';
-
-export default (
-  ctx,
-  to = `/login?next=${encodeURIComponent(
-    ctx.req ? ctx.req.url : ctx.pathname,
-  )}`,
-) => {
-  if (ctx.res) {
-    ctx.res.writeHead(302, { Location: to });
-    ctx.res.end();
-    return {};
-  }
-  return Router.push(to);
-};
diff --git a/yarn.lock b/yarn.lock
index 7ace0c0d0..5e098efd8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -47,34 +47,6 @@
     lodash "^4.17.4"
     pify "^3.0.0"
 
-"@types/express-serve-static-core@*":
-  version "4.0.53"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.0.53.tgz#1723a35d1447f2c55e13c8721eab3448e42f4d82"
-  dependencies:
-    "@types/node" "*"
-
-"@types/express@~4.0.35":
-  version "4.0.37"
-  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.0.37.tgz#625ac3765169676e01897ca47011c26375784971"
-  dependencies:
-    "@types/express-serve-static-core" "*"
-    "@types/serve-static" "*"
-
-"@types/mime@*":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b"
-
-"@types/node@*":
-  version "8.0.43"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.43.tgz#a596ccba8fe2293a54a9f3537d066b208d3fb1b2"
-
-"@types/serve-static@*":
-  version "1.7.32"
-  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.7.32.tgz#0f6732e4dab0813771dd8fc8fe14940f34728b4c"
-  dependencies:
-    "@types/express-serve-static-core" "*"
-    "@types/mime" "*"
-
 JSONStream@^1.0.4:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a"
@@ -267,6 +239,10 @@ array-union@^1.0.1:
   dependencies:
     array-uniq "^1.0.1"
 
+array-uniq@1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.2.tgz#5fcc373920775723cfd64d65c64bef53bf9eba6d"
+
 array-uniq@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
@@ -339,13 +315,6 @@ aws4@^1.2.1, aws4@^1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
 
-axios@^0.16.2:
-  version "0.16.2"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-0.16.2.tgz#ba4f92f17167dfbab40983785454b9ac149c3c6d"
-  dependencies:
-    follow-redirects "^1.2.3"
-    is-buffer "^1.1.5"
-
 babel-code-frame@^6.16.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -991,6 +960,10 @@ block-stream@*:
   dependencies:
     inherits "~2.0.0"
 
+bluebird@^3.5.0:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+
 bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   version "4.11.8"
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
@@ -1491,13 +1464,6 @@ convert-source-map@^1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
 
-cookie-parser@^1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz#0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5"
-  dependencies:
-    cookie "0.3.1"
-    cookie-signature "1.0.6"
-
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -1648,7 +1614,7 @@ dashdash@^1.12.0:
   dependencies:
     assert-plus "^1.0.0"
 
-date-fns@^1.27.2:
+date-fns@1.29.0, date-fns@^1.27.2:
   version "1.29.0"
   resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
 
@@ -1663,13 +1629,13 @@ dateformat@^1.0.11, dateformat@^1.0.12:
     get-stdin "^4.0.1"
     meow "^3.3.0"
 
-debug@2, debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9:
+debug@2, debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.6.8:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   dependencies:
     ms "2.0.0"
 
-debug@^3.0.0, debug@^3.1.0:
+debug@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
   dependencies:
@@ -1685,7 +1651,7 @@ deep-assign@^1.0.0:
   dependencies:
     is-obj "^1.0.0"
 
-deep-extend@~0.4.0:
+deep-extend@^0.4.1, deep-extend@~0.4.0:
   version "0.4.2"
   resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
 
@@ -1808,7 +1774,7 @@ duplexer3@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
 
-duplexer@^0.1.1, duplexer@~0.1.1:
+duplexer@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
 
@@ -1947,10 +1913,6 @@ es6-map@^0.1.3:
     es6-symbol "~3.1.1"
     event-emitter "~0.3.5"
 
-es6-promise@^3.3.1:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
-
 es6-set@~0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
@@ -2177,19 +2139,7 @@ event-emitter@~0.3.5:
     d "1"
     es5-ext "~0.10.14"
 
-event-stream@~3.3.0:
-  version "3.3.4"
-  resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
-  dependencies:
-    duplexer "~0.1.1"
-    from "~0"
-    map-stream "~0.1.0"
-    pause-stream "0.0.11"
-    split "0.3"
-    stream-combiner "~0.0.4"
-    through "~2.3.1"
-
-events@^1.0.0, events@^1.1.1:
+events@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
 
@@ -2252,7 +2202,7 @@ expand-range@^1.8.1:
   dependencies:
     fill-range "^2.1.0"
 
-express@^4.15.2, express@^4.15.3, express@^4.16.1:
+express@^4.15.2:
   version "4.16.2"
   resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
   dependencies:
@@ -2321,31 +2271,16 @@ fbjs@^0.8.16:
     setimmediate "^1.0.5"
     ua-parser-js "^0.7.9"
 
-feathers-authentication-client@^0.3.3:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/feathers-authentication-client/-/feathers-authentication-client-0.3.3.tgz#d2183e4b08287dfd3ecb4a96eb081cf0b4e7c263"
-  dependencies:
-    debug "^2.2.0"
-    feathers-errors "^2.4.0"
-    jwt-decode "^2.1.0"
-
-feathers-commons@^0.8.0, feathers-commons@^0.8.6, feathers-commons@^0.8.7:
+feathers-commons@^0.8.0:
   version "0.8.7"
   resolved "https://registry.yarnpkg.com/feathers-commons/-/feathers-commons-0.8.7.tgz#11c6f25b537745a983e8d61552d7db8932d53782"
 
-feathers-errors@^2.0.1, feathers-errors@^2.4.0:
+feathers-errors@^2.0.1:
   version "2.9.2"
   resolved "https://registry.yarnpkg.com/feathers-errors/-/feathers-errors-2.9.2.tgz#96ca0e5fe50cc56f0eccc90ce3fa5e1f8840828d"
   dependencies:
     debug "^3.0.0"
 
-feathers-hooks@^2.0.2:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/feathers-hooks/-/feathers-hooks-2.1.0.tgz#3e49c85048231a04daa5e8ce196223ea1a2c64b6"
-  dependencies:
-    feathers-commons "^0.8.6"
-    uberproto "^1.2.0"
-
 feathers-rest@^1.8.0:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/feathers-rest/-/feathers-rest-1.8.0.tgz#3c03f1ea56adec940a8f9823d87a3aafeb9742a9"
@@ -2355,19 +2290,6 @@ feathers-rest@^1.8.0:
     feathers-errors "^2.0.1"
     qs "^6.4.0"
 
-feathers@^2.1.7:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/feathers/-/feathers-2.2.2.tgz#334590ffbddc93dd4af6590b20560762cda41beb"
-  dependencies:
-    "@types/express" "~4.0.35"
-    babel-runtime "^6.26.0"
-    debug "^3.1.0"
-    events "^1.1.1"
-    express "^4.16.1"
-    feathers-commons "^0.8.7"
-    rubberduck "^1.1.1"
-    uberproto "^1.2.0"
-
 figures@^1.3.5, figures@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -2456,12 +2378,6 @@ follow-redirects@0.0.7:
     debug "^2.2.0"
     stream-consume "^0.1.0"
 
-follow-redirects@^1.2.3:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.2.5.tgz#ffd3e14cbdd5eaa72f61b6368c1f68516c2a26cc"
-  dependencies:
-    debug "^2.6.9"
-
 for-in@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -2524,10 +2440,6 @@ friendly-errors-webpack-plugin@1.6.1:
     error-stack-parser "^2.0.0"
     string-length "^1.0.1"
 
-from@~0:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
-
 fs-extra@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
@@ -3006,20 +2918,10 @@ ieee754@^1.1.4:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
 
-ignore-by-default@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
-
 ignore@^3.2.0, ignore@^3.2.6:
   version "3.3.5"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
 
-immutability-helper@^2.1.2:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.4.0.tgz#00d421e2957c17f0f0781475f05ffd837e73458d"
-  dependencies:
-    invariant "^2.2.0"
-
 import-from@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -3093,7 +2995,7 @@ interpret@^1.0.0:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
 
-invariant@^2.2.0, invariant@^2.2.2:
+invariant@^2.2.2:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
   dependencies:
@@ -3103,6 +3005,10 @@ invert-kv@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
 
+ip-regex@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
+
 ipaddr.js@1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0"
@@ -3377,7 +3283,7 @@ isomorphic-fetch@^2.1.1:
     node-fetch "^1.0.1"
     whatwg-fetch ">=0.10.0"
 
-isomorphic-unfetch@^2.0.0:
+isomorphic-unfetch@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-2.0.0.tgz#f50140a4c163d7582b5f37f1591968c4f809a645"
   dependencies:
@@ -3401,10 +3307,6 @@ jest-validate@^21.1.0:
     leven "^2.1.0"
     pretty-format "^21.2.1"
 
-js-cookie@^2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.1.4.tgz#da4ec503866f149d164cf25f579ef31015025d8d"
-
 js-tokens@^3.0.0, js-tokens@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -3495,10 +3397,6 @@ junk@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592"
 
-jwt-decode@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79"
-
 kind-of@^3.0.2:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -3697,13 +3595,6 @@ lodash.cond@^4.3.0:
   version "4.5.2"
   resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
 
-lodash.defaults@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c"
-  dependencies:
-    lodash.assign "^3.0.0"
-    lodash.restparam "^3.0.0"
-
 lodash.isarguments@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
@@ -3818,10 +3709,6 @@ map-obj@^1.0.0, map-obj@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
 
-map-stream@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
-
 maximatch@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2"
@@ -3976,7 +3863,7 @@ modify-values@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2"
 
-moment@^2.11.2, moment@^2.19.1:
+moment@^2.11.2:
   version "2.19.1"
   resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.1.tgz#56da1a2d1cbf01d38b7e1afc31c10bcfa1929167"
 
@@ -4151,21 +4038,6 @@ node-uuid@~1.4.7:
   version "1.4.8"
   resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
 
-nodemon@^1.11.0:
-  version "1.12.1"
-  resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.1.tgz#996a56dc49d9f16bbf1b78a4de08f13634b3878d"
-  dependencies:
-    chokidar "^1.7.0"
-    debug "^2.6.8"
-    es6-promise "^3.3.1"
-    ignore-by-default "^1.0.1"
-    lodash.defaults "^3.1.2"
-    minimatch "^3.0.4"
-    ps-tree "^1.1.0"
-    touch "^3.1.0"
-    undefsafe "0.0.3"
-    update-notifier "^2.2.0"
-
 nopt@^4.0.0, nopt@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -4204,6 +4076,19 @@ normalize-path@^2.0.0, normalize-path@^2.0.1:
   dependencies:
     remove-trailing-separator "^1.0.1"
 
+normalize-url@1.9.1:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+  dependencies:
+    object-assign "^4.0.1"
+    prepend-http "^1.0.0"
+    query-string "^4.1.0"
+    sort-keys "^1.0.0"
+
+now@8.3.10:
+  version "8.3.10"
+  resolved "https://registry.yarnpkg.com/now/-/now-8.3.10.tgz#13b0dc1b8651284d5c345bc969d664d11c7885e8"
+
 "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0":
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37"
@@ -4312,6 +4197,15 @@ object.omit@^2.0.0:
     for-own "^0.1.4"
     is-extendable "^0.1.1"
 
+octonode@0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/octonode/-/octonode-0.9.1.tgz#a8ac6e767a5db0256b9f064527134f3f4e92e635"
+  dependencies:
+    bluebird "^3.5.0"
+    deep-extend "^0.4.1"
+    randomstring "^1.1.5"
+    request "^2.72.0"
+
 on-finished@~2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
@@ -4540,12 +4434,6 @@ path-type@^2.0.0:
   dependencies:
     pify "^2.0.0"
 
-pause-stream@0.0.11:
-  version "0.0.11"
-  resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
-  dependencies:
-    through "~2.3"
-
 pbkdf2@^3.0.3:
   version "3.0.14"
   resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade"
@@ -4617,35 +4505,11 @@ pluralize@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
 
-preact-compat@^3.16.0:
-  version "3.17.0"
-  resolved "https://registry.yarnpkg.com/preact-compat/-/preact-compat-3.17.0.tgz#528cfdfc301190c1a0f47567336be1f4be0266b3"
-  dependencies:
-    immutability-helper "^2.1.2"
-    preact-render-to-string "^3.6.0"
-    preact-transition-group "^1.1.0"
-    prop-types "^15.5.8"
-    standalone-react-addons-pure-render-mixin "^0.1.1"
-
-preact-render-to-string@^3.6.0:
-  version "3.7.0"
-  resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-3.7.0.tgz#7db4177454bc01395e0d01d6ac07bc5e838e31ee"
-  dependencies:
-    pretty-format "^3.5.1"
-
-preact-transition-group@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/preact-transition-group/-/preact-transition-group-1.1.1.tgz#f0a49327ea515ece34ea2be864c4a7d29e5d6e10"
-
-preact@^8.2.1:
-  version "8.2.5"
-  resolved "https://registry.yarnpkg.com/preact/-/preact-8.2.5.tgz#cbfa3962a8012768159f6d01d46f9c1eb3213c0a"
-
 prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
 
-prepend-http@^1.0.1:
+prepend-http@^1.0.0, prepend-http@^1.0.1:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
 
@@ -4664,10 +4528,6 @@ pretty-format@^21.2.1:
     ansi-regex "^3.0.0"
     ansi-styles "^3.2.0"
 
-pretty-format@^3.5.1:
-  version "3.8.0"
-  resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385"
-
 private@^0.1.6, private@^0.1.7:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -4728,12 +4588,6 @@ prr@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
 
-ps-tree@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
-  dependencies:
-    event-stream "~3.3.0"
-
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@@ -4776,6 +4630,13 @@ qs@~6.4.0:
   version "6.4.0"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
 
+query-string@^4.1.0:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+  dependencies:
+    object-assign "^4.1.0"
+    strict-uri-encode "^1.0.0"
+
 querystring-es3@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
@@ -4803,6 +4664,12 @@ randombytes@^2.0.0, randombytes@^2.0.1:
   dependencies:
     safe-buffer "^5.1.0"
 
+randomstring@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/randomstring/-/randomstring-1.1.5.tgz#6df0628f75cbd5932930d9fe3ab4e956a18518c3"
+  dependencies:
+    array-uniq "1.0.2"
+
 range-parser@^1.0.3, range-parser@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
@@ -5100,7 +4967,7 @@ request@2.81.0:
     tunnel-agent "^0.6.0"
     uuid "^3.0.0"
 
-request@^2.74.0:
+request@^2.72.0, request@^2.74.0:
   version "2.83.0"
   resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
   dependencies:
@@ -5261,10 +5128,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^2.0.0"
     inherits "^2.0.1"
 
-rubberduck@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/rubberduck/-/rubberduck-1.1.1.tgz#cd2cda4b867178135eafc995a71384f5f743db02"
-
 run-async@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
@@ -5447,7 +5310,7 @@ sntp@2.x.x:
   dependencies:
     hoek "4.x.x"
 
-sort-keys@^1.1.2:
+sort-keys@^1.0.0, sort-keys@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
   dependencies:
@@ -5513,12 +5376,6 @@ split2@^2.0.0:
   dependencies:
     through2 "^2.0.2"
 
-split@0.3:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
-  dependencies:
-    through "2"
-
 split@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
@@ -5561,10 +5418,6 @@ staged-git-files@0.0.4:
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35"
 
-standalone-react-addons-pure-render-mixin@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551"
-
 "statuses@>= 1.2.1 < 2", "statuses@>= 1.3.1 < 2", statuses@~1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
@@ -5576,12 +5429,6 @@ stream-browserify@^2.0.1:
     inherits "~2.0.1"
     readable-stream "^2.0.2"
 
-stream-combiner@~0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
-  dependencies:
-    duplexer "~0.1.1"
-
 stream-consume@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f"
@@ -5600,6 +5447,10 @@ stream-to-observable@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe"
 
+strict-uri-encode@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+
 string-hash@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.1.tgz#8e85bed291e0763b8f6809d9c3368fea048db3dc"
@@ -5794,7 +5645,7 @@ through2@^2.0.0, through2@^2.0.2:
     readable-stream "^2.1.5"
     xtend "~4.0.1"
 
-through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1:
+through@2, "through@>=2.2.7 <3", through@^2.3.6:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
 
@@ -5812,6 +5663,10 @@ timers-browserify@^2.0.2:
   dependencies:
     setimmediate "^1.0.4"
 
+tlds@^1.187.0:
+  version "1.198.0"
+  resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.198.0.tgz#e7413ea5cccb5e1f4de2a1f45230b0c80994a886"
+
 to-arraybuffer@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
@@ -5820,7 +5675,7 @@ to-fast-properties@^1.0.1, to-fast-properties@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
 
-touch@3.1.0, touch@^3.1.0:
+touch@3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
   dependencies:
@@ -5832,6 +5687,10 @@ tough-cookie@~2.3.0, tough-cookie@~2.3.3:
   dependencies:
     punycode "^1.4.1"
 
+travis-after-all@1.4.5:
+  version "1.4.5"
+  resolved "https://registry.yarnpkg.com/travis-after-all/-/travis-after-all-1.4.5.tgz#55c0bd9afce2b8dc208ed026aa695fc93f06a65c"
+
 travis-ci@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/travis-ci/-/travis-ci-2.1.1.tgz#98696265af827ae3576f31aa06d876e74b4b082e"
@@ -5905,10 +5764,6 @@ ua-parser-js@^0.7.9:
   version "0.7.17"
   resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"
 
-uberproto@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/uberproto/-/uberproto-1.2.0.tgz#61d4eab024f909c4e6ea52be867c4894a4beeb76"
-
 uglify-js@^2.6, uglify-js@^2.8.29:
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
@@ -5942,10 +5797,6 @@ ultron@~1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864"
 
-undefsafe@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f"
-
 underscore.string@~2.2.0rc:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19"
@@ -5972,7 +5823,7 @@ unzip-response@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
 
-update-notifier@^2.1.0, update-notifier@^2.2.0:
+update-notifier@^2.1.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451"
   dependencies:
@@ -5992,6 +5843,13 @@ url-parse-lax@^1.0.0:
   dependencies:
     prepend-http "^1.0.1"
 
+url-regex@4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-4.1.1.tgz#a5617b22e15e26dac57ce74c3f52088bcdfec995"
+  dependencies:
+    ip-regex "^1.0.1"
+    tlds "^1.187.0"
+
 url@0.11.0, url@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -6308,6 +6166,24 @@ yargs-parser@^7.0.0:
   dependencies:
     camelcase "^4.1.0"
 
+yargs@9.0.1:
+  version "9.0.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c"
+  dependencies:
+    camelcase "^4.1.0"
+    cliui "^3.2.0"
+    decamelize "^1.1.1"
+    get-caller-file "^1.0.1"
+    os-locale "^2.0.0"
+    read-pkg-up "^2.0.0"
+    require-directory "^2.1.1"
+    require-main-filename "^1.0.1"
+    set-blocking "^2.0.0"
+    string-width "^2.0.0"
+    which-module "^2.0.0"
+    y18n "^3.2.1"
+    yargs-parser "^7.0.0"
+
 yargs@^8.0.2:
   version "8.0.2"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"