diff --git a/source/people.html b/source/people.html
deleted file mode 100644
index 30d07b9..0000000
--- a/source/people.html
+++ /dev/null
@@ -1,392 +0,0 @@
----
-title: Apache NiFi Team
----
-
-<div class="large-space"></div>
-<div class="row">
-    <div class="large-12 columns">
-        <h1 class="nifi-txt">
-            <span>
-                Apache <span class="ni">ni</span><span class="fi">fi</span> Team
-            </span>
-        </h1>
-    </div>
-</div>
-<div class="row">
-        <p class="description">A successful project requires many people to play many roles. Some members write code, provide project mentorship, or author documentation. Others are valuable as testers, submitting patches and suggestions.</p>
-</div>
-</div>
-<div class="medium-space"></div>
-<div class="row">
-    <div class="large-12 columns">
-        <h3 class="nifi-txt">
-            <span>
-                PMC Members
-            </span>
-        </h3>
-    </div>
-</div>
-<div class="row">
-    <div class="large-12 columns">
-<table>
-    <tr>
-    <th>Id</th>
-    <th>Name</th>
-    <th>Affiliation</th>
-    </tr>
-    <tr>
-    <td>aldrin</td>
-    <td>Aldrin Piri</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>devriesb</td>
-    <td>Brandon DeVries</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>jcarey</td>
-    <td>Jason Carey</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>markap14</td>
-    <td>Mark Payne</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>joewitt</td>
-    <td>Joe Witt</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>jbarnabee</td>
-    <td>Jenn Barnabee</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>mcgilman</td>
-    <td>Matt Gilman</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>taftster</td>
-    <td>Adam Taft</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>tkurc</td>
-    <td>Tony Kurc</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>danbress</td>
-    <td>Dan Bress</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>bbende</td>
-    <td>Bryan Bende</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>busbey</td>
-    <td>Sean Busbey</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>jpercivall</td>
-    <td>Joe Percivall</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>alopresto</td>
-    <td>Andy LoPresto</td>
-    <td></td>
-    </tr>
-    <tr>
-        <td>mattyb149</td>
-        <td>Matt Burgess</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>afucs</td>
-        <td>Andre F de Miranda</td>
-        <td></td>
-    </tr>
-    <tr>
-    <td>jskora</td>
-    <td>Joe Skora</td>
-    <td></td>
-    </tr>
-    <tr>
-        <td>jwing</td>
-        <td>James Wing</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>ozhurakousky</td>
-        <td>Oleg Zhurakousky</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>ymdavis</td>
-        <td>Yolanda M. Davis</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>pvillard31</td>
-        <td>Pierre Villard</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>ijokarumawak</td>
-        <td>Koji Kawamura</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>mosermw</td>
-        <td>Michael Moser</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>scottyaslan</td>
-        <td>Scott Aslan</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>phrocker</td>
-        <td>Marc Parisi</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>jeremydyer</td>
-        <td>Jeremy Dyer</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>kdoran</td>
-        <td>Kevin Doran</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>pwicks</td>
-        <td>Peter Wicks</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>aboda</td>
-        <td>Arpad Boda</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>andrewmlim</td>
-        <td>Andrew M. Lim</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>mthomsen</td>
-        <td>Mike Thomsen</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>exceptionfactory</td>
-        <td>David Handermann</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>szaszm</td>
-        <td>Márton Szász</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>turcsanyi</td>
-        <td>Peter Turcsanyi</td>
-        <td></td>
-    </tr>
-</table>
-</div>
-</div>
-<div class="row">
-<div class="large-12 columns">
-<h3 class="nifi-txt">
-    <span>
-    Committers
-    </span>
-</h3>
-</div>
-</div>
-<div class="row">
-<div class="large-12 columns">
-<table>
-    <tr>
-    <th>Id</th>
-    <th>Name</th>
-    <th>Affiliation</th>
-    </tr>
-    <tr>
-    <td>toivoadams</td>
-    <td>Toivo Adams</td>
-    <td></td>
-    </tr>
-    <tr>
-    <td>rickysaltzer</td>
-    <td>Ricky Saltzer</td>
-    <td></td>
-    </tr>
-    <tr>
-        <td>brosander</td>
-        <td>Bryan Rosander</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>jfrazee</td>
-        <td>Joey Frazee</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>bqiu</td>
-        <td>Bin Qiu</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>rmoran</td>
-        <td>Rob Moran</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>mhogue</td>
-        <td>Mike Hogue</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>aichrist</td>
-        <td>Andrew Christianson</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>zenfenan</td>
-        <td>Sivaprasanna Sethuraman</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>bdesert</td>
-        <td>Ed Berezitsky</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>thenatog</td>
-        <td>Nathan Gough</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>rfellows</td>
-        <td>Rob Fellows</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>bakaid</td>
-        <td>Dániel Bakai</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>kotarot</td>
-        <td>Kotaro Terada</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>adebreceni</td>
-        <td>Adam Debreceni</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>fgerlits</td>
-        <td>Ferenc Gerlits</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>jgresock</td>
-        <td>Joe Gresock</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>tpalfy</td>
-        <td>Tamas Palfy</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>denes</td>
-        <td>Denes Arvay</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>amarkovics</td>
-        <td>Ádám Markovics</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>martinzink</td>
-        <td>Martin Zink</td>
-        <td></td>
-    </tr>
-    <tr>
-        <td>bsimon</td>
-        <td>Bence Simon</td>
-        <td></td>
-    </tr>
-</table>
-</div>
-</div>
-<div class="row">
-    <div class="large-12 columns">
-        <h3 class="nifi-txt">
-            <span>
-                In Memoriam
-            </span>
-        </h3>
-    </div>
-</div>
-<div class="row">
-    <div class="large-12 columns">
-<table>
-    <tr>
-    <th>Id</th>
-    <th>Name</th>
-    </tr>
-    <tr>
-    <td>jstorck</td>
-    <td>Jeff Storck (PMC)</td>
-    </tr>
-</table>
-<div class="row">
-<div class="large-12 columns">
-<h3 class="nifi-txt">
-    <span>
-    Emeritus Members
-    </span>
-</h3>
-</div>
-</div>
-<div class="row">
-<div class="large-12 columns">
-<table>
-    <tr>
-    <th>Id</th>
-    <th>Name</th>
-    </tr>
-    <tr>
-    <td>bimargulies</td>
-    <td>Benson Margulies</td>
-    </tr>
-</table>
-</div>
-</div>
-<div class="row">
-        <div class="large-12 columns">
-            <p class="description">The team is comprised of Project Management Committee Members, Committers, and Contributors.
-        <p class="description">Committers are the group of volunteers who are responsible for the technical aspects of the Apache NiFi Project. This group has write access to the appropriate source repositories. All committer input is valued and when technical discussions occur, committer input is treated the same as PMC member input. Committers are encouraged to vote on releases and technical discussions, but only PMC members may cast "binding" votes (see <a href="https://www.apache.org/foundation/voting.html#binding-votes" target="_blank">Apache Voting Guide</a>). Membership as a Committer is by invitation only and must be approved by <a href="https://www.apache.org/foundation/glossary.html#ConsensusApproval">consensus approval</a> of the active Apache NiFi PMC members on a vote open for at least 72 hours. A Committer is considered inactive by their own declaration or by not contributing in any form to the project for over six months. An inactive member can become active again by reversing whichever condition made them inactive ( i.e., by reversing their earlier declaration or by once again contributing toward the project's work). Membership can be revoked by a unanimous vote of all the active PMC members (except the member in question if they are a PMC member).
-       <p class="description">Contributors improve the project through submission of patches and suggestions. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
-           <p class="description">Emeritus members are those that served as PMC members or committers and who have since moved into non-active status.  Their contributions and efforts are greatly appreciated in helping the community develop.</p>
-        </div>
-     </div>
-</div>
diff --git a/source/people.md b/source/people.md
new file mode 100644
index 0000000..1819e08
--- /dev/null
+++ b/source/people.md
@@ -0,0 +1,114 @@
+---
+title: Apache NiFi Team
+containerEnabled: true
+---
+
+# Apache <span class="ni">ni</span><span class="fi">fi</span> Team
+
+A successful project requires many people to play many roles. Some members write code, provide project mentorship,
+or author documentation. Others are valuable as testers, submitting patches and suggestions.
+
+### PMC Members
+
+| Apache Username | Name |
+| --------------- | ---- |
+| aboda | Arpad Boda |
+| afucs | Andre Fucs de Miranda |
+| aldrin | Aldrin Piri |
+| alopresto | Andy LoPresto |
+| andrewmlim | Andrew M. Lim |
+| bbende | Bryan Bende |
+| busbey | Sean Busbey |
+| danbress | Dan Bress |
+| devriesb | Brandon DeVries |
+| exceptionfactory | David Handermann |
+| ijokarumawak | Koji Kawamura |
+| jbarnabee | Jennifer Barnabee |
+| jcarey | Jason Carey |
+| jeremydyer | Jeremy Dyer |
+| jfrazee | Joey Frazee |
+| joewitt | Joe Witt |
+| jpercivall | Joe Percivall |
+| jskora | Joe Skora |
+| jstorck | Jeff Storck |
+| jvwing | James Wing |
+| kevdoran | Kevin Doran |
+| markap14 | Mark Payne |
+| mattyb149 | Matt Burgess |
+| mcgilman | Matt Gilman |
+| mosermw | Michael W Moser |
+| mthomsen | Mike Thomsen |
+| ozhurakousky | Oleg Zhurakousky |
+| phrocker | Marc Parisi |
+| pvillard | Pierre Villard |
+| pwicks | Peter Wicks |
+| scottyaslan | Scott Aslan |
+| szaszm | Marton Szasz |
+| taftster | Adam Taft |
+| tkurc | Tony Kurc |
+| turcsanyi | Peter Turcsanyi |
+| ymdavis | Yolanda Davis |
+
+### Committers
+
+| Apache Username | Name |
+| --------------- | ---- |
+| adebreceni | Adam Debreceni |
+| aichrist | Andy I.C. |
+| amarkovics | Ádám Markovics |
+| bakaid | Dániel Bakai |
+| bqiu | Ben Qiu |
+| brosander | Bryan Rosander |
+| bsimon | Simon Bence |
+| chriss | Chris Sampson |
+| denes | Denes Arvay |
+| edbe | Ed Berezitsky |
+| fgerlits | Ferenc Gerlits |
+| greyp | Paul Grey |
+| jgresock | Joe Gresock |
+| kotarot | Kotaro Terada |
+| lordgamez | Gábor Gyimesi |
+| martinzink | Martin Zink |
+| mhogue | Mike Hogue |
+| mtien | Margot Tien |
+| otto | Otto Fowler |
+| rfellows | Rob Fellows |
+| rickysaltzer | Ricky Saltzer |
+| rmoran | Rob Moran |
+| thenatog | Nathan Gough |
+| toivoadams | Toivo Adams |
+| tpalfy | Tamas Palfy |
+| zenfenan | Sivaprasanna Sethuraman |
+
+### In Memoriam
+
+| Apache Username | Name |
+| --------------- | ---- |
+| jstorck | Jeff Storck (PMC) |
+
+### Emeritus Members
+
+| Apache Username | Name |
+| --------------- | ---- |
+| bimargulies | Benson Margulies |
+
+The team consists of Project Management Committee Members, Committers, and Contributors.
+
+Committers are the group of volunteers who are responsible for the technical aspects of the Apache NiFi Project.
+This group has write access to the appropriate source repositories. All committer input is valued and when technical
+discussions occur, committer input is treated the same as PMC member input. Committers are encouraged to vote on
+releases and technical discussions, but only PMC members may cast "binding" votes
+see [Apache Voting Guide](https://www.apache.org/foundation/voting.html#binding-votes).
+Membership as a Committer is by invitation only and must be approved by
+[consensus approval](https://www.apache.org/foundation/glossary.html#ConsensusApproval) of the active Apache
+NiFi PMC members on a vote open for at least 72 hours. A Committer is considered inactive by their own declaration or by
+not contributing in any form to the project for over six months. An inactive member can become active again by reversing
+whichever condition made them inactive ( i.e., by reversing their earlier declaration or by once again contributing
+toward the project's work). Membership can be revoked by a unanimous vote of all the active PMC members (except the
+member in question if they are a PMC member).
+
+Contributors improve the project through submission of patches and suggestions. The number of Contributors to the
+project is unbounded. Get involved today. All contributions to the project are greatly appreciated.
+
+Emeritus members are those that served as PMC members or committers and who have since moved into non-active status.
+Their contributions and efforts are greatly appreciated in helping the community develop.
