---
layout: default
---
<!--
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
-->
<div name="Community">

  <div id="whiskSupporter">
    <div class="doc">
      <div class="content">
          <a class="indexable" id="supporters"></a>
          <h3>Supporters</h3>
          <p>The following companies and organizations have acknowledged support of the Apache OpenWhisk project as contributors or users of the technology.</p>
          <div class="flow-columns">
              <div class="flow-item-container">
                  <a href="https://www.adobe.io/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/adobe.png"
                    alt="Adobe supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.abilisense.com/" target="_blank">
                  <img class="flow-item-image"
                src="{{ site.github.url }}/images/supporter/abilisense.png"
                alt="Abilisense supports Apache Openwhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="http://advisorconnect.co/" target="_blank">
                  <img class="flow-item-image"
                src="{{ site.github.url }}/images/supporter/advisorconnect.png"
                alt="Advisor Connect supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.altoros.com/" target="_blank">
                      <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/altoros.png"
                    alt="Altoros supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="http://articoolo.com/" target="_blank">
                      <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/articoolo.png"
                    alt="Articoolo supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="http://bigvu.tv/" target="_blank">
                      <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/bigvu.png"
                    alt="BigVU supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                <a href="https://www.cloudstation.com/" target="_blank">
                  <img class="flow-item-image"
                      src="{{ site.github.url }}/images/supporter/cloudstation.png"
                      alt="CloudStation supports Apache OpenWhisk">
                </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://greenq.gq/" target="_blank">
                      <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/greenq.png"
                    alt="GreenQ supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.ibm.com/cloud/functions" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/ibm-solid.png"
                    alt="IBM supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://jpl.nasa.gov" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/nasajpl.png"
                    alt="NASA JPL supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://konghq.com" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/kong.png"
                    alt="Kong supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.magentiq.com/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/magentiq.png"
                    alt="Magentiq Eye supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.naver.com/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/naver.png"
                    alt="Naver supports Apache OpenWhisk">
                  </a>
              </div>
              <!-- REMOVED: domain name is no longer hosted -->
              <!-- <div class="flow-item-container">
                  <a href="http://www.nepente.io/en/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/nepente.png"
                    alt="Nepente supports Apache OpenWhisk">
                  </a>
              </div> -->
              <!-- REMOVED: domain name is no longer hosted -->
              <!--div class="flow-item-container">
                  <a href="https://www.neuroapplied.com/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/neuroapplied.png"
                    alt="NeuroApplied supports Apache OpenWhisk">
                  </a>
              </div-->
              <div class="flow-item-container">
                  <a href="https://nimbella.com/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/nimbella.png"
                    alt="Nimbella supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://qzcloud.com/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/qzcloud.png"
                    alt="QZCloud supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="https://www.redhat.com/en" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/redhat.png"
                    alt="RedHat supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                  <a href="http://www.sitespirit.nl/" target="_blank">
                  <img class="flow-item-image"
                    src="{{ site.github.url }}/images/supporter/sitespirit.png"
                    alt="SiteSpirit supports Apache OpenWhisk">
                  </a>
              </div>
              <div class="flow-item-container">
                <a href="https://wso2.com/" target="_blank">
                  <img class="flow-item-image"
                      src="{{ site.github.url }}/images/supporter/wso2.png"
                      alt="WSO2 supports Apache OpenWhisk">
                </a>
              </div>
          </div>
      </div>
  </div>

  </div>


<div id="whiskIndexedLayout">

  <!-- Community Index -->
  <div id="whiskIndex">
    <ul>
      <li><a href="#community">Community</a></li>

      <!-- Mailing lists -->
      <li><a href="#mailing-lists">Mailing Lists</a></li>

      <!-- Issue Trackers -->
      <li><a href="#issue-trackers">Issue Trackers</a></li>

      <!-- Social Media -->
      <li class="index-menu-toggle"><a href="#social">Media</a></li>
      <ul class="index-menuitems">
        <li><a href="#github">GitHub</a></li>
        <li><a href="#slack">Slack</a></li>
        <li><a href="#twitter">Twitter</a></li>
        <li><a href="#youtube">YouTube</a></li>
        <li><a href="#stackoverflow">Stack Overflow</a></li>
        <li><a href="#slideshare">Slideshare</a></li>
      </ul>

      <!-- Project Wiki -->
      <li><a href="#wiki">Project Wiki</a></li>

      <!-- Events -->
      <li><a href="#events">Events</a></li>

      <!-- Supporters -->
      <li><a href="#supporters">Supporters</a></li>

    </ul>
  </div>
  <section id="whiskNodes">

    <main class="doc">
          <div class="content">
              <a class="indexable" id="community"></a>
              <h2>Community</h2>
              <div>
                  <p>The Apache OpenWhisk community attempts to engage its users and developers in as many channels as we are able. Please find and subscribe to the ones that are right for you. If you wish to engage our community's Contributors and Committers around project architecture, design and source code, please subscribe to and participate in our developer mailing list as described below.</p>
              </div>
          </div>
      </main>
      <main class="doc">
          <div class="content">
              <a class="indexable" id="mailing-lists"></a>
              <h3>Mailing Lists</h3>
              <p>The developer or "dev" mailing list is where we discuss <b><i>all</i></b> the design and
                development of Apache OpenWhisk project code.
                It is <b><i>not</i></b> however a place for technical support;
                if you're looking for help on the project, please try our
                <a style="font-weight:400;" href="/documentation.html">Documentation</a>
                page and engage with us on one of the Social Media channels
                listed below.
              </p>
              <question>How do I join the Apache OpenWhisk project
                developer mailing list?</question>
              <p>To subscribe, unsubscribe or post our developer list, send
                an email message to one of the following addresses:</p>
                  <ul>
                      <li><b>Subscribe</b>: <a href="mailto:dev-subscribe@openwhisk.apache.org">dev-subscribe@openwhisk.apache.org</a></li>
                      <li><b>Unsubscribe</b>: <a href="mailto:dev-unsubscribe@openwhisk.apache.org">dev-unsubscribe@openwhisk.apache.org</a></li>
                      <li><b>Post</b> (new topic): <a href="mailto:dev@openwhisk.apache.org">dev@openwhisk.apache.org</a></li>
                  </ul>
              <p>To comment on a thread, simply reply to the message with
                the same subject text.
              </p>
              <p><b>NOTE:</b> Make sure you add a subject line to the
                subscribe/unsubscribe messages. Empty emails are ignored.</p>
              <p>To see existing messages, use:
                <a href="https://lists.apache.org/list.html?dev@openwhisk.apache.org">https://lists.apache.org/list.html?dev@openwhisk.apache.org</a>.</p>
          </div>
      </main>

      <main class="doc">
          <div class="content">
              <a class="indexable" id="issue-trackers"></a>
              <h3>Issue Trackers</h3>
              <p>The project uses GitHub issues to report non-security related bug reports and feature requests. Please see <a href="https://openwhisk.apache.org/security.html">https://openwhisk.apache.org/security.html</a> for information on how to report a suspected security vulnerability with OpenWhisk.</p>
              <p>Each of the sub-components of OpenWhisk uses the issue tracker associated with its GitHub project for tracking its own issues.  If you are not sure where to start, the <a href="https://github.com/apache/openwhisk/issues">OpenWhisk Core Issue Tracker</a> is the best place to start.  Some of the most frequently used issue trackers are:
                <ul>
                  <li><a href="https://github.com/apache/openwhisk/issues">Core OpenWhisk system</a></li>
                  <li><a href="https://github.com/apache/openwhisk-deploy-kube/issues">OpenWhisk on Kubernetes</a></li>
                  <li><a href="https://github.com/apache/openwhisk-cli/issues">OpenWhisk CLI (wsk)</a></li>
                  <li><a href="https://github.com/apache/openwhisk-website/issues">OpenWhisk website</a></li>
                  <li><a href="https://github.com/apache/openwhisk/blob/master/docs/dev/modules.md">List of all OpenWhisk sub-components and their GitHub project</a></li>
                </ul>
              </p>
          </div>
      </main>
      <main class="doc">
          <div class="content">
              <a class="indexable" id="social"></a>
              <h3>Media</h3>
              <p>The Apache OpenWhisk project is active on several content sharing and social media channels which aim to make it easier for users to get started, ask questions, stay informed and to interact with our community. If you wish to engage our community's Contributors and Committers around project architecture, design and source code, please subscribe to and participate in our developer mailing list as described above.</p>

              <p>Icons that link to each of the following channels are located in the header of our website and include:</p>
              <ul>
                  <a class="indexable" id="github"></a>
                  <li><a href="https://github.com/apache?q=openwhisk" title="Apache OpenWhisk project repositories on GitHub">GitHub</a>: Browse the source code, documentation and tests for all the repositories that make up our project component, deployment and tooling ecosystem.</li>
                  <a class="indexable" id="slack"></a>
                  <li><a href="slack.html" title="Apache OpenWhisk on Slack">Slack</a>: Engage the OpenWhisk developer community directly in conversations across several topics. Slack is intended for quickly getting help, not deep technical discussions. The place for the latter and all important topics is the project "dev" list.</li>
                  <li><a href="https://medium.com/openwhisk" title="Apache OpenWhisk on Medium">Medium</a>: Read the latest blog posts on the OpenWhisk project including how-tos, use cases, architecture topics and more.</li>
                  <a class="indexable" id="twitter"></a>
                  <li><a href="https://twitter.com/search?q=openwhisk" title="Apache OpenWhisk on Twitter">Twitter</a>: Follow for the latest news from the OpenWhisk ecosystem.</li>
                  <a class="indexable" id="youtube"></a>
                  <li><a href="https://www.youtube.com/channel/UCbzgShnQk8F43NKsvEYA1SA" title="Apache OpenWhisk on YouTube">YouTube</a>: See demos of OpenWhisk in action as well as recordings of community meetings and events.</li>
                  <a class="indexable" id="stackoverflow"></a>
                  <li><a href="https://stackoverflow.com/questions/tagged/openwhisk">Stack Overflow</a>: Ask questions and find answers about how to use OpenWhisk. Use the tag "openwhisk".</li>
                  <a class="indexable" id="slideshare"></a>
                  <li><a href="https://www.slideshare.net/OpenWhisk">SlideShare</a>: Look over slides from many of the presentations from past events.</li>
              </ul>
          </div>
      </main>
      <main class="doc">
          <div class="content">
              <a class="indexable" id="wiki"></a>
              <h3>Project Wiki</h3>
              <p>The project maintains a <a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Apache+OpenWhisk+Project+Wiki">Confluence Wiki</a> site that provides the community a place to share their thoughts about and collaborate around any aspect of the project; whether it's about the platform architecture, an existing or planned feature or about its use cases and integrations. Examples include:</p>
              <ul>
                <li><strong>How to contribute?</strong></li>
                <li><strong>How do I become a Contributor or Committer?</strong></li>
                  <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Proposals">Proposals</a> (Design)</li>
                  <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Presentations%2C+Meeting+Notes+and+Transcripts">Meeting Notes and Transcripts</a></li>
                  <li><a href="https://cwiki.apache.org/confluence/display/OPENWHISK/Processes">Processes</a></li>
                  <!-- NOTE: we have no policies now so do not link until they exist -->
                  <!-- <li><a href="">Policies</a></li> -->
              </ul>
          </div>
      </main>

      <main class="doc">
          <div class="content">
              <a class="indexable" id="events"></a>
              <h3>Events</h3>
              <h5 style="margin-top:20px;">Apache OpenWhisk events</h5>
              <p>
                  Please reach out to community at <a href="mailto:dev@openwhisk.apache.org">dev@openwhisk.apache.org</a> to promote any OpenWhisk event.
              </p>
              <ul><li><em>
                  To view a list of past events please refer to the <a href="events.html">Events Archive</a> page.</em></li>
              </ul>

              <h5>Apache events</h5>
              <p>
                Find out about all upcoming events sponsored by the Apache Software Foundation by clicking the image below.
              </p>
                  <div style="">
                    <a href="https://apache.org/events/current-event"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Join us at the latest Apache sponsored event."/></a>
                  </div>
          </div>
       </main>

  </section>

</div>

</div>
<!--
<p>The Apache Software Foundation does not endorse listed events. Get in touch with us to suggest event listings. See social media https://openwhisk.apache.org/social</p>
 -->
