diff --git a/website2/docs/community-contact.md b/website2/docs/community-contact.md
deleted file mode 100644
index bed72a8..0000000
--- a/website2/docs/community-contact.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-id: community-contact
-title: Contact
-sidebar_label: Contact
----
-
-## Contact
-
-#### Mailing lists
-
-| Name                                                                      | Scope                           |                                                                |                                                                    |                                                                           |
-|:--------------------------------------------------------------------------|:--------------------------------|:---------------------------------------------------------------|:-------------------------------------------------------------------|:--------------------------------------------------------------------------|
-| [user@heron.incubator.apache.org](mailto:user@heron.incubator.apache.org) | User-related discussions        | [Subscribe](mailto:user-subscribe@heron.incubator.apache.org)  | [Unsubscribe](mailto:user-unsubscribe@heron.incubator.apache.org)  | [Archives](http://mail-archives.apache.org/mod_mbox/incubator-heron-user/)|
-| [dev@heron.incubator.apache.org](mailto:dev@heron.incubator.apache.org)   | Development-related discussions | [Subscribe](mailto:dev-subscribe@heron.incubator.apache.org)   | [Unsubscribe](mailto:dev-unsubscribe@heron.incubator.apache.org)   | [Archives](http://mail-archives.apache.org/mod_mbox/incubator-heron-dev/) |
-
-#### Slack
-
-[Self-Register](http://heronstreaming.herokuapp.com/) to our [Heron Slack Workspace](https://heronstreaming.slack.com/)
\ No newline at end of file
diff --git a/website2/docs/community-events.md b/website2/docs/community-events.md
deleted file mode 100644
index d7014a3..0000000
--- a/website2/docs/community-events.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-id: community-events
-title: Community Events
-sidebar_label: Community Events
----
-
-Groups
-
-[Apache Heron Bay Area Meetup](https://www.meetup.com/Apache-Heron-Bay-Area)
\ No newline at end of file
diff --git a/website2/website/data/resources.js b/website2/website/data/resources.js
new file mode 100644
index 0000000..742ecef
--- /dev/null
+++ b/website2/website/data/resources.js
@@ -0,0 +1,207 @@
+module.exports = {
+    publications: [
+      {
+        forum: 'O’Reilly',
+        forum_link: 'http://shop.oreilly.com/product/0636920203131.do',
+        title: 'Stream Processing with Heron',
+        link: 'http://shop.oreilly.com/product/0636920203131.do'
+      },
+      {
+        forum: '',
+        forum_link: '',
+        presenter: '',
+        date: 'July 2016',
+        title: 'Streaming@Twitter - Bulletin of the IEEE Computer Society Technical Committee on Data Engineering',
+        link: 'http://sites.computer.org/debull/A15dec/p15.pdf'
+      },
+      {
+        forum: '',
+        forum_link: '',
+        presenter: '',
+        date: 'May 2015',
+        title: 'Twitter Heron: Stream Processing at Scale - SIGMOD’15',
+        link: 'http://dl.acm.org/citation.cfm?id=2595641'
+      },
+      {
+        forum: '',
+        forum_link: '',
+        presenter: '',
+        date: 'June 2013',
+        title: 'Storm@Twitter - SIGMOD\'14',
+        link: 'http://dl.acm.org/citation.cfm?id=2595641'
+      },
+     
+    ],
+    presentations: [
+      {
+        forum: 'Twitter',
+        forum_link: '',
+        presenter: 'Maosong Fu',
+        date: 'April 2016',
+        title: 'Twitter Heron on Apache Aurora - #compute event @Twitter',
+        link: 'https://m.youtube.com/watch?v=ua0ufmr9sQI&feature=youtu.be'
+      },
+      {
+        forum: 'Twitter',
+        forum_link: '',
+        presenter: '',
+        date: 'May 2015',
+        title: 'Twitter Heron: Stream Processing at Scale - SIGMOD’15',
+        link: 'http://dl.acm.org/citation.cfm?id=2595641'
+      },
+      {
+        forum: 'QCon',
+        forum_link: 'https://qconferences.com/',
+        presenter: 'Karthik Ramasamy',
+        date: 'April 2016',
+        title: 'Flying Faster with Heron - InfoQ',
+        link: 'http://www.infoq.com/presentations/twitter-heron'
+      },
+      {
+        forum: 'Data @ Scale',
+        forum_link: 'https://www.youtube.com/channel/UCd9I8ZkgoR1d7GeSj_wi_LQ',
+        presenter: 'Karthik Ramasamy',
+        date: 'September 2015',
+        title: 'Twitter Heron: Stream Processing at Scale - @Scale',
+        link: 'https://www.youtube.com/watch?v=pUaFOuGgmco'
+      },
+      {
+        forum: 'Data @ Scale',
+        forum_link: 'https://www.youtube.com/channel/UCd9I8ZkgoR1d7GeSj_wi_LQ',
+        presenter: 'Karthik Ramasamy',
+        date: 'June 2015',
+        title: 'Stream Processing and Anomaly Detection - Velocity O’Reilly - Note: requires O’Reilly login',
+        link: 'https://player.oreilly.com/videos/9781491927977?login=true'
+      },
+      {
+        forum: 'Google',
+        forum_link: 'hhttps://www.youtube.com/channel/UC7BjFZywGHiqWdEF7SnQ7hQ',
+        presenter: 'Josh Fischer',
+        date: 'October 2018',
+        title: 'Building Apache Heron - BazelCon 2018',
+        link: 'https://www.youtube.com/watch?v=yBTSfA4YDtY&t'
+      },
+    ],
+    blogs: [
+        {
+            forum: 'Twitter Engineering blog',
+            forum_link: 'https://blog.twitter.com/engineering/',
+            presenter: 'Maosong Fu',
+            date: 'Feb 2018',
+            title: 'Leaving the Nest: Heron donated to Apache Software Foundation',
+            link: 'https://blog.twitter.com/engineering/en_us/topics/open-source/2018/heron-donated-to-apache-software-foundation.html'
+          },
+          {
+            forum: 'Twitter Engineering blog',
+            forum_link: 'https://blog.twitter.com/engineering/',
+            presenter: 'Karthik Ramasamy',
+            date: 'May 2016',
+            title: 'Leaving the Nest: Heron donated to Apache Software Foundation',
+            link: 'https://blog.twitter.com/2016/open-sourcing-twitter-heron'
+          },
+          {
+            forum: 'Twitter Engineering blog',
+            forum_link: 'https://blog.twitter.com/engineering/',
+            presenter: 'Karthik Ramasamy',
+            date: 'June 2015',
+            title: 'Flying Faster with Twitter Heron',
+            link: 'https://blog.twitter.com/2016/open-sourcing-twitter-heron'
+          },
+          {
+            forum: 'Streamanalytics',
+            forum_link: 'http://streamanalytics.blogspot.com/',
+            presenter: 'Supun Kamburugamuve',
+            date: 'June 2016',
+            title: 'Deploying Heron on a Cluster of Machines with Apache Aurora',
+            link: 'http://streamanalytics.blogspot.com/2016/06/deploying-heron-on-cluster-of-machines.html'
+          },
+          {
+            forum: '',
+            forum_link: 'http://pulasthisupun.blogspot.com/',
+            presenter: 'Pulasthi Supun',
+            date: 'June 2016',
+            title: 'Setting up Heron Locally with Apache Aurora',
+            link: 'http://pulasthisupun.blogspot.com/2016/06/setting-up-heron-cluster-with-apache.html'
+          },
+          {
+            forum: '1904Labs',
+            forum_link: 'https://1904labs.com/',
+            presenter: 'Josh Fischer',
+            date: 'Feb 2018',
+            title: 'Introducing Heron’s ECO; A Flexible Way To Manage Topologies',
+            link: 'https://1904labs.com/2018/02/14/introducing-herons-eco-flexible-way-manage-topologies/'
+          },
+          {
+            forum: 'Twitter University',
+            forum_link: 'https://www.twitter.com/',
+            presenter: 'Arun Kejariwal',
+            date: 'May 2016',
+            title: 'Real-Time Analytics: Algorithms and Systems - Twitter University',
+            link: 'http://www.slideshare.net/arunkejariwal/real-time-analytics-algorithms-and-systems'
+          },
+          {
+            forum: 'O’Reilly',
+            forum_link: 'https://www.oreilly.com/',
+            presenter: 'Arun Kejariwal',
+            date: 'June 2015',
+            title: 'Stream Processing and Anomaly Detection - Velocity O’Reilly',
+            link: 'http://www.slideshare.net/arunkejariwal/velocity-2015final'
+          },
+    ],
+    press: [
+        {
+            forum: '',
+            forum_link: '',
+            presenter: 'BenZinga ',
+            date: 'June 2016',
+            title: 'Heron, Twitter\'s Data Streaming Platform, Has Been Open Sourced',
+            link: 'http://www.benzinga.com/tech/16/06/8119962/heron-twitters-data-streaming-platform-has-been-open-sourced'
+          },
+          {
+            forum: '',
+            forum_link: '',
+            presenter: 'Forbes',
+            date: 'June 2016',
+            title: 'Twitter Open Sources Heron -- Data Streaming For Dummies',
+            link: 'http://www.forbes.com/sites/adrianbridgwater/2016/06/16/twitter-open-sources-heron-data-streaming-for-dummies/#6f8984319b50'
+          },
+          {
+            forum: '',
+            forum_link: '',
+            presenter: 'All Things Hadoop',
+            date: 'May 2016',
+            title: 'Getting Started with Heron on Apache Mesos and Apache Kafka',
+            link: 'https://allthingshadoop.com/2016/05/30/getting-started-with-heron-on-apache-mesos-and-apache-kafka/'
+          },
+          {
+            forum: '',
+            forum_link: '',
+            presenter: 'VentureBeat',
+            date: 'May 2016',
+            title: 'Twitter open-sources Heron, its real-time stream-processing engine',
+            link: 'http://venturebeat.com/2016/05/25/twitter-open-sources-heron-its-real-time-stream-processing-engine/'
+          },
+          {
+            forum: '',
+            forum_link: '',
+            presenter: 'Forbes',
+            date: 'June 2015',
+            title: 'Twitter\'s Heron Will Start a New Chapter in Real-Time Streaming',
+            link: 'http://www.forbes.com/sites/janakirammsv/2015/06/08/twitters-heron-will-start-a-new-chapter-in-real-time-streaming/#62c8645b2306'
+          },
+          {
+            forum: '',
+            forum_link: '',
+            presenter: 'InfoQ',
+            date: 'June 2015',
+            title: 'Twitter Has Replaced Storm with Heron',
+            link: 'https://www.infoq.com/news/2015/06/twitter-storm-heron'
+          },
+    ]
+  }
+
+
+
+
+
+
diff --git a/website2/website/pages/en/contact.js b/website2/website/pages/en/contact.js
new file mode 100644
index 0000000..5d25b83
--- /dev/null
+++ b/website2/website/pages/en/contact.js
@@ -0,0 +1,98 @@
+
+const React = require('react');
+
+const CompLibrary = require('../../core/CompLibrary.js');
+const Container = CompLibrary.Container;
+const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
+const GridBlock = CompLibrary.GridBlock;
+const translate = require('../../server/translate.js').translate;
+
+const CWD = process.cwd();
+
+const siteConfig = require(`${CWD}/siteConfig.js`);
+
+class Contact extends React.Component {
+  render() {
+    let language = this.props.language || '';
+    const mailingLists = [
+      {
+        email: 'users@heron.incubator.apache.org',
+        desc: 'User-related discussions',
+        subscribe: 'mailto:user-subscribe@heron.incubator.apache.org',
+        unsubscribe: 'mailto:users-unsubscribe@heron.incubator.apache.org',
+        archives: 'http://mail-archives.apache.org/mod_mbox/heron-user/'
+      },
+      {
+        email: 'dev@heron.incubator.apache.org',
+        desc: 'Development-related discussions',
+        subscribe: 'mailto:dev-subscribe@heron.incubator.apache.org',
+        unsubscribe: 'mailto:dev-unsubscribe@heron.incubator.apache.org',
+        archives: 'http://mail-archives.apache.org/mod_mbox/heron-dev/'
+      },
+      {
+        email: 'commits@heron.incubator.apache.org',
+        desc: 'All commits to the Heron repository',
+        subscribe: 'mailto:commits-subscribe@heron.incubator.apache.org',
+        unsubscribe: 'mailto:commits-unsubscribe@heron.incubator.apache.org',
+        archives: 'http://mail-archives.apache.org/mod_mbox/heron-commits/'
+      }
+    ]
+
+    return (
+      <div className="docMainWrapper wrapper">
+        <Container className="mainContainer documentContainer postContainer">
+          <div className="post">
+            <header className="postHeader">
+              <h1><translate>Contact</translate></h1>
+              <hr />
+            </header>
+            <p><translate>
+            There are many ways to get help from the Apache Heron community.
+            The mailing lists are the primary place where all Heron committers are present.
+            Bugs and feature requests can either be discussed on the dev mailing list or
+            by opening an issue on
+            <a href="https://github.com/apache/incubator-heron/" target="_blank">GitHub</a>.
+            </translate></p>
+
+            <h2><translate>Mailing Lists</translate></h2>
+            <table className="versions">
+              <thead>
+                <tr>
+                  <th><translate>Name</translate></th>
+                  <th><translate>Scope</translate></th>
+                  <th></th>
+                  <th></th>
+                  <th></th>
+                </tr>
+              </thead>
+              <tbody>
+                {mailingLists.map(
+                  list => (
+                      <tr key={list.email}>
+                        <td>{list.email}</td>
+                        <td>{list.desc}</td>
+                        <td><a href={list.subscribe}><translate>Subscribe</translate></a></td>
+                        <td><a href={list.unsubscribe}><translate>Unsubscribe</translate></a></td>
+                        <td><a href={list.archives}><translate>Archives</translate></a></td>
+                      </tr>
+                    )
+                )}
+              </tbody>
+            </table>
+
+            <h2><translate>Slack</translate></h2>
+            <p><translate>There is a Heron slack channel that is used for informal discussions for devs and users.</translate></p>
+
+            <p><translate>The Slack instance is at </translate> <a href="https://heronstreaming.slack.com/" target="_blank">
+                    https://heronstreaming.slack.com/</a></p>
+
+            <p><translate>You can self-register at </translate> <a href="http://heronstreaming.herokuapp.com/" target="_blank">
+                    http://heronstreaming.herokuapp.com/</a></p>
+          </div>
+        </Container>
+      </div>
+    );
+  }
+}
+
+module.exports = Contact;
\ No newline at end of file
diff --git a/website2/website/pages/en/events.js b/website2/website/pages/en/events.js
new file mode 100644
index 0000000..4197f36
--- /dev/null
+++ b/website2/website/pages/en/events.js
@@ -0,0 +1,38 @@
+
+const React = require('react');
+
+const CompLibrary = require('../../core/CompLibrary.js');
+const Container = CompLibrary.Container;
+const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
+const GridBlock = CompLibrary.GridBlock;
+
+const CWD = process.cwd();
+
+const translate = require('../../server/translate.js').translate;
+
+const siteConfig = require(`${CWD}/siteConfig.js`);
+
+class Events extends React.Component {
+  render() {
+
+    return (
+      <div className="docMainWrapper wrapper">
+        <Container className="mainContainer documentContainer postContainer">
+          <div className="post">
+            <header className="postHeader">
+              <h1><translate>Events</translate></h1>
+              <hr />
+            </header>
+            
+            <h2><translate>Groups</translate></h2>
+            <MarkdownBlock>
+              - [Apache Heron Bay Area Meetup Group](https://www.meetup.com/Apache-Heron-Bay-Area/events/249414421/)
+            </MarkdownBlock>
+          </div>
+        </Container>
+      </div>
+    );
+  }
+}
+
+module.exports = Events;
\ No newline at end of file
diff --git a/website2/website/pages/en/resources.js b/website2/website/pages/en/resources.js
new file mode 100644
index 0000000..88344f0
--- /dev/null
+++ b/website2/website/pages/en/resources.js
@@ -0,0 +1,122 @@
+
+
+const React = require('react');
+
+const CompLibrary = require('../../core/CompLibrary.js');
+const Container = CompLibrary.Container;
+
+const CWD = process.cwd();
+
+const translate = require('../../server/translate.js').translate;
+
+const siteConfig = require(`${CWD}/siteConfig.js`);
+const resources = require(`${CWD}/data/resources.js`)
+
+class Resources extends React.Component {
+  render() {
+    let language = this.props.language || '';
+    
+
+    return (
+      <div className="docMainWrapper wrapper">
+        <Container className="mainContainer documentContainer postContainer">
+          <div className="post">
+            <header className="postHeader">
+              <h1><translate>Resources</translate></h1>
+              <hr />
+            </header>
+            
+            <h2><translate>Articles</translate></h2>
+            <table className="versions">
+              <thead>
+                <tr>
+                  <th><translate>Link</translate></th>
+                </tr>
+              </thead>
+              <tbody>
+                {resources.publications.map(
+                  (a, i) => (
+                    <tr key={i}>
+                      <td><a href={a.link}>{a.title}</a></td>
+                    </tr>
+                  )
+                )}
+              </tbody>
+            </table>
+
+            <h2><translate>Presentations</translate></h2>
+            <table className="versions">
+              <thead>
+                <tr>
+                  <th><translate>Forum</translate></th>
+                  <th><translate>Data</translate></th>
+                  <th><translate>Presenter</translate></th>
+                  <th><translate>Link</translate></th>
+                </tr>
+              </thead>
+              <tbody>
+                {resources.presentations.map(
+                  (p, i) => (
+                    <tr key={i}>
+                      <td><a href={p.forum_link}>{p.forum}</a></td>
+                      <td>{p.date}</td>
+                      <td>{p.presenter}</td>
+                      <td><a href={p.link}>{p.title}</a></td>
+                    </tr>
+                  )
+                )}
+              </tbody>
+            </table>
+            <h2><translate>Blogs</translate></h2>
+            <table className="versions">
+              <thead>
+                <tr>
+                  <th><translate>Forum</translate></th>
+                  <th><translate>Data</translate></th>
+                  <th><translate>Presenter</translate></th>
+                  <th><translate>Link</translate></th>
+                </tr>
+              </thead>
+              <tbody>
+                {resources.blogs.map(
+                  (p, i) => (
+                    <tr key={i}>
+                      <td><a href={p.forum_link}>{p.forum}</a></td>
+                      <td>{p.date}</td>
+                      <td>{p.presenter}</td>
+                      <td><a href={p.link}>{p.title}</a></td>
+                    </tr>
+                  )
+                )}
+              </tbody>
+            </table>
+            <h2><translate>Press</translate></h2>
+            <table className="versions">
+              <thead>
+                <tr>
+                  <th><translate>Data</translate></th>
+                  <th><translate>Presenter</translate></th>
+                  <th><translate>Link</translate></th>
+                </tr>
+              </thead>
+              <tbody>
+                {resources.press.map(
+                  (p, i) => (
+                    <tr key={i}>
+                      <td>{p.date}</td>
+                      <td>{p.presenter}</td>
+                      <td><a href={p.link}>{p.title}</a></td>
+                    </tr>
+                  )
+                )}
+              </tbody>
+            </table>
+
+          </div>
+        </Container>
+      </div>
+    );
+  }
+}
+
+module.exports = Resources;
\ No newline at end of file
diff --git a/website2/website/static/js/custom.js b/website2/website/static/js/custom.js
index cd61b65..a89d27f 100644
--- a/website2/website/static/js/custom.js
+++ b/website2/website/static/js/custom.js
@@ -7,10 +7,10 @@
     '<a id="community-menu" href="#">Community<span style="font-size: 0.75em">&nbsp;▼</span></a>' +
     '<div id="community-dropdown" class="hide" >' +
       '<ul id="community-dropdown-items">' +
-        '<li><a href="community-contact" style="color:#1d3f5f">Contact</a></li>' +
-        '<li><a href="community-events" style="color:#1d3f5f">Events</a></li>' +
+        '<li><a href="/contact" style="color:#1d3f5f">Contact</a></li>' +
+        '<li><a href="/events" style="color:#1d3f5f">Events</a></li>' +
         '<li><a href="https://github.com/apache/incubator-heron/issues" style="color:#1d3f5f">Issue tracking</a></li>' +
-        '<li><a href="heron-resources-resources" style="color:#1d3f5f">Resources</a></li>' +
+        '<li><a href="/resources" style="color:#1d3f5f">Resources</a></li>' +
         '<li><a href="/team" style="color:#1d3f5f">Team</a></li>' +
       '</ul>' +
     '</div>' +
