
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Apache Whimsy Project And Server Code</title>
  <link rel="stylesheet" type="text/css" href="/assets/bootstrap-min.css"/>
  <style type="text/css">
  .footer { 
    margin-top: 20px;
    margin-left: 20px;
  }
  </style>
</head>
<body>
  <div class="header container-fluid">
    <div class="row">
      <div class="col-sm-4 hidden-xs">
        <a href="https://www.apache.org/">
          <img title="ASF Logo" alt="ASF Logo" width="250" height="101" style="margin-left: 10px; margin-top: 10px;" src="https://www.apache.org/foundation/press/kit/asf_logo_small.png"/>
        </a>
      </div>
      <div class="col-sm-3 col-xs-3">
        <a href="/">
          <img title="Whimsy logo" alt="Whimsy hat" src="/whimsy.svg" width="145" height="101"/>
        </a>
      </div>
      <div class="col-sm-5 col-xs-9 align-bottom">
        <ul class="nav nav-tabs">
          <li role="presentation">
            <a href="https://github.com/apache/whimsy/">
              Code
            </a>
          </li>
          <li role="presentation">
            <a href="https://lists.apache.org/list.html?dev@whimsical.apache.org">
              Questions
            </a>
          </li>
          <li role="presentation">
            <a href="status/">
              Server status
            </a>
          </li>
          <li role="presentation" class="active">
            <a href="/technology">
              About
            </a>
          </li>
        </ul>
      </div>
    </div>
  </div>
  
  <div class="content container-fluid">
    <div class="row">
      <div class="col-md-6 col-sm-4">
        <h2>About Whimsy Code</h2>
        <ul>
          <li>Get the source: 
            <a href="https://gitbox.apache.org/repos/asf/whimsy.git">Apache</a>
            <a href="https://github.com/apache/whimsy">GitHub</a></li>
            - 
            <a href="https://matt.apache.org/pushlogs.html?repo=whimsy">Push logs</a></li>
          </li>
          <li><a href="https://issues.apache.org/jira/browse/WHIMSY/">Issue Tracker</a></li>
          <li><a href="https://github.com/apache/whimsy/blob/master/README.md">README</a></li>
          <li><a href="docs/api/">API documentation</a></li>
          <li><a href="https://github.com/apache/whimsy/blob/master/DEVELOPMENT.md">How to: Develop locally</a></li>
          <li><a href="https://github.com/apache/whimsy/blob/master/DEPLOYMENT.md">How to: Deploy this server</a></li>
          <li><a href="https://github.com/apache/whimsy/blob/master/www/status/README.md">How to: Monitoring setup</a></li>
        </ul>
        <h2>Operational Issues</h2>    
        <ul>
          <li><a href="status/">Current server status</a></li>
          <li><a href="https://lists.apache.org/list.html?dev@whimsical.apache.org">Contact the Apache Whimsy Project</a></li>
          <li><a href="http://www.apache.org/dev/infra-contact#how">Contact the Infrastructure team</a></li>
          <li><a href="https://github.com/apache/whimsy/blob/master/CONFIGURE.md">Configuration Docs</a></li>
        </ul>
      </div>
      <div class="col-md-6 col-sm-4">
        <h2>Technology Behind Whimsy</h2>  
        <ul>
          <li><a href="http://getbootstrap.com/">Bootstrap</a></li>
          <li><a href="http://www.w3.org/Style/CSS/">CSS</a></li>
          <li><a href="https://www.w3.org/TR/html5/">HTML5</a></li>
          <li><a title="technically it is called ECMAScript" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">JavaScript</a></li>
          <li><a href="http://jquery.com/">JQuery</a></li>
          <li><a href="https://facebook.github.io/react/">React.js</a></li>
          <li><a href="http://www.ruby-lang.org/en/">Ruby</a></li>
          <li><a href="https://github.com/rubys/ruby2js/blob/master#readme">Ruby2JS</a></li>
          <li><a href="http://www.w3.org/TR/SVG/">SVG</a></li>
          <li><a href="https://vuejs.org/">Vue.js</a></li>
          <li><a href="https://github.com/rubys/wunderbar#readme">Wunderbar</a></li>
        </ul>        
        <h2>Tools Running Whimsy</h2>        
        <ul>
          <li><a href="http://httpd.apache.org/">Apache HTTPD</a></li>
          <li><a href="http://tools.ietf.org/html/rfc3875">CGI</a></li>
          <li><a href="https://git-scm.com/">Git</a></li>
          <li><a href="http://www.openldap.org/">LDAP</a></li>
          <li><a href="https://www.phusionpassenger.com/">Phusion Passenger</a></li>
          <li><a href="http://subversion.apache.org/">Subversion</a></li>
        </ul>
      </div>
    </div>
  </div>
  
  <div class="footer container-fluid">
    <div class="panel panel-default">
      <div class="panel-heading">
        <h3 class="panel-title">License And Credits</h3>
      </div>
      <div class="panel-body">
        <p>
          Copyright &copy; 2015-2020 The Apache Software Foundation, Licensed under
          the <a href="http://www.apache.org/licenses/LICENSE-2.0" rel="license">Apache License, Version 2.0</a>.
          | 
          <a href="https://www.apache.org/foundation/policies/privacy">Privacy Policy</a>
          <br />
        Apache&reg;, the names of Apache projects, and the feather logo are either <a href="http://www.apache.org/foundation/marks/list/">registered trademarks or trademarks</a> of the Apache Software Foundation in the United States and/or other countries.
        </p>
      </div>
    </div>
  </div>
</body>
</html>
