<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Apache Roller is an open-source Java-based, full-featured, multi-user and group-blog server suitable for blog sites large and small.">
    <meta name="author" content="">
    <link rel="icon" href="/images/favicon.ico">

    <title>Apache Roller</title>

    <!-- Bootstrap core CSS -->
    <link href="/bootstrap-3.2.0/css/bootstrap.min.css" rel="stylesheet">

    <!-- Bootstrap theme -->
    <link href="/bootstrap-3.2.0/css/bootstrap-theme.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="/css/roller.css" rel="stylesheet">

</head>

<body>

<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index.html">Apache Roller</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Info <span class="caret"></span></a>
                    <ul class="dropdown-menu" role="menu">
                        <li><a href="http://rollerweblogger.org/project">Team Blog</a></li>
                        <li><a href="http://cwiki.apache.org/confluence/display/ROLLER">Project Wiki</a></li>
                        <li><a href="https://twitter.com/apache_roller">Twitter</a></li>
                        <li><a href="https://www.openhub.net/p/roller">Open Hub Page</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists">Mailing Lists</a></li>
                        <li><a href="/project/whoweare.html">Who We Are</a></li>
                    </ul>
                </li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Get Involved <span class="caret"></span></a>
                    <ul class="dropdown-menu" role="menu">
                        <li><a href="https://issues.apache.org/jira/browse/ROL">Issue Tracker</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/ROLLER/Developer+Resources">Development Information</a></li>
                        <li><a href="https://github.com/apache/roller">Browse Source</a></li>
                        <li><a href="https://builds.apache.org/job/Roller/">Jenkins CI</a></li>
                        <li><a href="https://sonarcloud.io/dashboard?id=roller-master">Sonar Analysis</a></li>
                        <li><a href="/getinvolved/edit_website.html">Website Admin</a></li>
                    </ul>
                </li>
                <li><a href="/downloads/downloads.html">Download</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <span class="caret"></span></a>
                    <ul class="dropdown-menu" role="menu">
                        <li><a href="https://www.apache.org/foundation/" target="external">Foundation</a></li>
                        <li><a href="https://www.apache.org/events/current-event" target="external">Events</a></li>
                        <li><a href="https://projects.apache.org/" target="external">Projects</a></li>
                        <li><a href="https://people.apache.org/" target="external">People</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html" target="external">Sponsorship</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html" target="external">Thanks</a></li>
                        <li><a href="https://www.apache.org/licenses/" target="external">License</a></li>
                        <li><a href="https://www.apache.org/security/" target="external">Security</a></li>
                    </ul>
                </li>
            </ul>
        </div><!--/.nav-collapse -->
    </div>
</div>

<div class="markdown-content">


<div class="container">
    <!-- Example row of columns -->
    <div class="row">
        <h1>Who we are</h1>
        <p><h2>Roller Committers</h2>
<p>The current Roller committer list (* = PMC member):</p>
<ul>
<li>Aditya Sharma</li>
<li>Anil R. Gangolli (*)</li>
<li>Greg Huber (*)</li>
<li><a href="http://rollerweblogger.org/roller/">David M Johnson</a> (*)</li>
<li><a href="http://www.nailedtothex.org/roller/">Kohei Nozaki</a> (*)</li>
<li><a href="http://raibledesigns.com/">Matt Raible</a> (*)</li>
<li>Craig L Russell (*)</li>
<li><a href="http://gauravsaini.me/">Gaurav Saini</a></li>
</ul>
<h2>Emeritus Committers</h2>
<p>The Apache Roller project expresses appreciation for our past volunteers:</p>
<ul>
<li>Jeff Blattman</li>
<li>Allen Gilliland</li>
<li>Mindaguas Idzelis</li>
<li>Lance Lanvandowska</li>
<li>Ganesh Mathrerootham</li>
<li>Glen Mazza</li>
<li>Shelan Perera</li>
<li>Matt Schmidt</li>
<li>Elias Torres</li>
<li>Jaap Van Der Molen</li>
<li>Henri Yandell</li>
</ul>
</p>
    </div>
</div>

</div>

<div class="container">
    <hr>
    <footer>
        <p>
            Copyright &copy; 2019 The Apache Software Foundation.
            <a href="https://www.apache.org/licenses/" target="external">
                Licensed under the  Apache License, Version 2.0
            </a>.
            <br/>
            Apache Roller, the project logo and the Apache feather logo are trademarks of
            <a href="https://www.apache.org/" target="external">
                The Apache Software Foundation.
            </a>
        </p>
    </footer>
</div>

<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="/bootstrap-3.2.0/js/bootstrap.min.js"></script>
</body>
</html>