title: Welcome to The Apache Software Foundation!
bodytag: id="home"

<section>
  <div class="container">
     <div class="row">
		<div class="col-sm-12 text-center">
			<div class="container public-good">
				<h1 class="h3">Software for the Public Good test</h1>
				<p>ASF’s open source software is used ubiquitously around the world with more than 8,400 committers contributing to more than 320 active projects.</p>
				<p><a class="btn btn-default mx-10" href="/index.html#projects-list" role="button">See All Projects</a><a class="btn btn-default mx-10" href="https://community.apache.org/" role="button">Contribute</a></p>
				<img class="img-responsive" src="img/Fo3uP-ZX0AMe1od.jpg" alt="Apache Everywhere" />
		    </div>
		</div>
	</div>
  </div>
</section> 
<!-- Quotes -->
<section id="apacheQuotes" class="bg-primary">
	 <div class="container">
	      <!-- Slideshow container -->
	      <div class="slideshow-container">
	      	   <!-- Full-width slides/quotes -->
		   <div class="mySlides">
		   	<blockquote class="text-center">
				    <p>"The most popular open source software is&nbsp;Apache&hellip;"</p>
				    <footer>DZone, <cite title="What Open Source Software Do You Use?">“What Open Source Software Do You&nbsp;Use?”</cite></footer>
			</blockquote>
	      	   </div>
		   <div class="mySlides">
		   	<blockquote class="text-center">
				    <p>"Apache-style licensing may yield more adoption and&nbsp;money."</p>
				    <footer>Matt Asay, <cite title="c|net">c|net</cite></footer>
		        </blockquote>
		   </div>
		   <div class="mySlides">
		   	<blockquote class="text-center">
				    <p>"Apache&rsquo;s 'survival of the fittest' ethos breeds better&nbsp;software"</p>
				    <footer><cite title="ZDNet">ZDNet</cite></footer>
			</blockquote>
		   </div>
		   <!-- Next/prev buttons -->
		   <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
		   <a class="next" onclick="plusSlides(1)">&#10095;</a>
	      </div>
	      <!-- Dots/bullets/indicators -->
	      <div class="dot-container">
	      	   <span class="dot" onclick="currentSlide(1)"></span>
		   <span class="dot" onclick="currentSlide(2)"></span>
		   <span class="dot" onclick="currentSlide(3)"></span>
	      </div>
	      <!-- END SLIDESHOW CONTAINER -->
	 </div>
</section>
<!-- Updates Section    -->
<section id="news">
  <div class="container">
    <h2 class="no-btm-margin">Latest News</h2>
 		<p>Keep up with the ASF's news and announcements by subscribing to the
   		<a href="/foundation/mailinglists.html#foundation-announce">Apache Announcements List</a>, as well as following the <a href="https://news.apache.org/">Foundation Blog</a>,
		<a href="https://news.apache.org/foundation/entry/category/newsletter">Apache Weekly News Round-Ups</a>,
		<a href="https://twitter.com/TheASF">@TheASF on Twitter</a>,
		<a href="https://www.linkedin.com/company/the-apache-software-foundation/">The Apache Software Foundation on LinkedIn</a>, on the ASF's <a href="https://www.youtube.com/c/TheApacheFoundation/">YouTube channel</a>, and on <a href="https://feathercast.apache.org/">Feathercast</a>, the voice of the ASF.</p>
 <!-- gm -->
     	<div class="updates blog-feed">
 <!--
	Exclude the Twitter section from processing.
	To re-instate, update asfdata.yaml
-->
[is twitter_enable "1"]
            <article class="card">
				<div class="content">
					<span class="label label-danger">Twitter</span>
					<div>
						[[]@TheASF](https://twitter.com/TheASF)[for twitter] [twitter.text][end]
					</div>
				</div>
				<a class="continue" href="https://twitter.com/TheASF">Continue Reading&nbsp;&rarr;</a>
      		 </article>
[end]       [for foundation]<article class="card">
				<div class="content">
					<span class="label label-danger">Foundation Blog</span>
               		<h5><a class="entryTitle" target="_blank" href="[foundation.href]">[foundation.title]</a></h5>       
				</div>
         		<a class="continue" target="_blank" href="[foundation.href]">Continue Reading&nbsp;&rarr;</a>
       		</article>[end]   
 <!-- /gm -->
   </div>
</section>
<!-- / Updates Section    -->

<!-- Highlights -->
<section class="bg-gray ">
	<div class="container">
		<div class="highlights">
			<article class="card">
				<a href="/foundation/reports.html">
					<img class="img-responsive" src="img/2021-report.jpg" alt="Apache Annual Report" />
					<div class="card-content">
						<h4>Reports</h4>
						<p>Official ASF reports and statements,
						 including Quarterly and Annual Reports, Vision Statement,
						 "Apache is Open", 5-Year Strategic Plan, and more.</p>
					</div>
				</a>
			</article>
			<article class="card">
				<a href="http://community.apache.org/">
					<img class="img-responsive" src="img/community.jpg" alt="The Apache Community" />
					<div class="card-content">
						<h4>Community</h4>
						<p>Guidance and mentoring for those interested in participating in Apache projects and their communities.
							From Google Summer of Code to community events, get started here to learn how to become an
							Apache contributor.</p>
					</div>
				</a>
			</article>
			<article class="card">
				<a href="/theapacheway/index.html">
					<img class="img-responsive" src="img/the-apache-way.jpg" alt="The Apache Way" />
					<div class="card-content">
						<h4>The Apache Way</h4>
						<p>Our consensus-driven, open development process was refined over the past 20 years and produced some of
							the largest and longest-lived Open Source projects that have revolutionized the industry.</p>
					</div>
				</a>
			</article>
			<article class="card">
				<a href="https://apachecon.com/">
					<img class="img-responsive" src="img/ApacheCon.jpg" alt="ApacheCon" />
					<div class="card-content">
						<h4>Conferences</h4>
						<p>"Tomorrow's Technology Today" since 1998. Intentionally intimate, offering unparalleled educational,
							networking, and collaboration opportunities.</p>
					</div>
				</a>
			</article>
		</div>
	</div>
</section>
<!-- End Highlights-->

<section class="about-foundation">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <h2>About the Foundation</h2>
        <p>The ASF is a 501(c)(3) charitable organization run almost exclusively by volunteers who oversee hundreds of projects. Our sponsors enable us to maintain the infrastructure needed to support them.</p>
        <div class="container">
          <div class="row">
           <p><a class="btn btn-default btn-sm" href="/foundation/" role="button">Governance</a><a class="btn btn-default btn-sm" href="/foundation/thanks" role="button">See our sponsors</a></p>
	  	  <div>
		</div>
	  </div>
	</div>
	</div>
  </div>
</section>
<!-- was Apachecon etc here -->
<section class="bg-gray">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <h2>ASF Projects</h2>
        <p>The ASF develops, stewards, and incubates hundreds of freely available, enterprise-grade projects that serve as the backbone for the most visible and widely used applications in computing today.</p>
		<div class="row ">
			<div class="col-sm-6">
				<h3 class="h3-small">Contribute</h3>
				<p>If you wish to contribute to ASF projects, the Community Development site has tools, processes, and advice to help you get started.</p>
				<p><a href="https://community.apache.org/">Get Started</a></p>
			</div>
			<div class="col-sm-6">
				<h3 class="h3-small">Host a Project</h3>
				<p>The Apache Incubator provides a path for projects and their communities that want to enter the ASF.</p>
				<p><a href="https://incubator.apache.org/">Learn more</a></p>
			</div>
		</div>
	  </div>
	</div>
  </div>
</section>
<!-- Apache Featured Projects Section    -->
<section class="bg-gray" data-pagefind-ignore="all">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <div class="container">
          <div class="row">
            <h3 class="h3-small">Featured Project<span class="visible-md-inline visible-lg-inline">s</span></h3>     
            <div class="col-md-3 col-sm-12">
              <!-- tabs left -->
              <div class="tabbable tabs-left visible-md-inline visible-lg-inline">
                <ul class="nav nav-tabs">
                  [for featured_projs]<li [if-index featured_projs first]class="active"[end]>
                      <a href="#[featured_projs.key_id]" data-toggle="tab">[featured_projs.display_name]</a>
                    </li>[end]
                </ul>
              </div>
            </div>
            <div class="col-md-9 col-sm-12">
              <div class="tab-content">
                [for featured_projs]<div class="tab-pane fade in [if-index featured_projs first]active[end]" id="[featured_projs.key_id]">
                    <div class="row">
                      <div class="col-sm-2">
                        <img class="img-responsive center-block" src="[featured_projs.logo]" alt="Logo">
                      </div>
                      <div class="col-sm-10">
                        <h4 id="featured-project-[featured_projs.key_id]" class="no-btm-margin"><a href="[featured_projs.site]">[featured_projs.display_name]</a></h4>
                        <p>[featured_projs.description]</p>
                        <a class="btn btn-default btn-sm" href="[featured_projs.site]" role="button">Learn More...</a>
                      </div>
                    </div>
                  </div>[end]
              </div><!-- /tab-content -->
            </div><!-- /container -->
          </div><!-- /tabs -->
        </div><!-- /column -->
<!-- Incubator Projects Section    -->
        <div class="container">
          <div class="row">
            <h3  class="h3-small">Incubating Project<span class="visible-md-inline visible-lg-inline">s</span></h3>
        <p>The Apache Incubator is the primary entry path into The Apache Software Foundation for projects and their communities wishing to become part of the Foundation’s efforts. 
        All code donations from external organisations and existing external projects seeking to join the Apache community enter through the Incubator.</p>
            <div class="col-md-3 col-sm-12">
              <!-- tabs left -->
              <div class="tabbable tabs-left visible-md-inline visible-lg-inline">
                <ul class="nav nav-tabs">
                  [for featured_pods]<li [if-index featured_pods first]class="active"[end]>
                      <a href="#[featured_pods.key_id]" data-toggle="tab">[featured_pods.name]</a>
                    </li>[end]
                </ul>
              </div>
            </div>
            <div class="col-md-9 col-sm-12">
              <div class="tab-content">
                [for featured_pods]<div class="tab-pane fade in [if-index featured_pods first]active[end]" id="[featured_pods.key_id]">
                    <div class="row">
                      <div class="col-sm-2">
                        <img class="img-responsive center-block" src="[featured_pods.logo]" alt="Logo">
                      </div>
                      <div class="col-sm-10">
                        <h4 id="incubating-project-[featured_pods.key_id]" class="no-btm-margin"><a href="[featured_pods.homepage]">[featured_pods.name]</a></h4>
                        <p>[featured_pods.description]</p>
                        <a class="btn btn-default btn-sm" href="[featured_pods.homepage]" role="button">Learn More...</a>
                      </div>
                    </div>
                  </div>[end]
              </div><!-- /tab-content -->
            </div><!-- /container -->
          </div><!-- /tabs -->
        </div><!-- /column -->
  <!-- / Incubator Projects Section    -->
      </div>
    </div>
  </div>
</section>
<!-- Apache Projects List -->
	<section id="projects-list">
		<div class="container">
			<div class="row">
				<div class="col-sm-12">
					<h2>Apache Project List</h2>
					<!-- not consistent: projects (with sub-projects) or TLPs?
             by category = projects,
             but other = Top Level Projects only) -->
				</div>
				<div class="col-sm-2" id="by_category">
					<!-- id for eventual use by whimsy; do not move -->
					<ul class="list-unstyled">
						<li><a href="https://projects.apache.org/">Overview</a></li>
						<li><a href="https://projects.apache.org/projects.html">All Projects</a></li>
					</ul>
					<h4>By Category</h4>
					<ul class="list-unstyled">
						<li><a href="http://attic.apache.org/" title="A home for dormant projects">Attic</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#big-data">Big Data</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#build-management">Build Management</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#cloud">Cloud</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#content">Content</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#database">Databases</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#ftp">FTP</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#graphics">Graphics</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#http">HTTP</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#httpd-module">HTTP-module</a></li>
						<li><a href="http://incubator.apache.org/"
								title="Entry path for projects and codebases wishing to become part of the Foundation's efforts">Incubating</a>
						</li>
						<li><a href="https://projects.apache.org/projects.html?category#javaee">JavaEE</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#library">Libraries</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#mail">Mail</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#mobile">Mobile</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#network-client">Network-client</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#network-server">Network-server</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#osgi">OSGi</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#regexp">RegExp</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#retired">Retired</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#search">Search</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#security">Security</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#sql">SQL</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#testing">Testing</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#virtual-machine">Virtual-machine</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#web-framework">Web-framework</a></li>
						<li><a href="https://projects.apache.org/projects.html?category#xml">XML</a></li>
					</ul>
				</div>
				<div class="col-sm-10">
					<div class="row">
						<div class="col-md-12" id="by_name">
							<!-- The project details are taken from committee_info.json (generated by Whimsy) -->
							<h4>By Name</h4>
							<div class="col-lg-4 col-sm-4">
								<div class="row">
									<div class="col-lg-6 col-md-12 border-right">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_0][is pl_0.letter pl_0.display_name]<li class="letter-header">[pl_0.letter][else]<li><a href="[pl_0.site]" title="[pl_0.description]">[pl_0.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
									<div class="col-lg-6 col-md-12 border-right">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_1][is pl_1.letter pl_1.display_name]<li class="letter-header">[pl_1.letter][else]<li><a href="[pl_1.site]" title="[pl_1.description]">[pl_1.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
								</div>
							</div>
							<div class="col-lg-4 col-sm-4">
								<div class="row">
									<div class="col-lg-6 col-md-12 border-right">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_2][is pl_2.letter pl_2.display_name]<li class="letter-header">[pl_2.letter][else]<li><a href="[pl_2.site]" title="[pl_2.description]">[pl_2.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
									<div class="col-lg-6 col-md-12 border-right">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_3][is pl_3.letter pl_3.display_name]<li class="letter-header">[pl_3.letter][else]<li><a href="[pl_3.site]" title="[pl_3.description]">[pl_3.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
								</div>
							</div>
							<div class="col-lg-4 col-sm-4">
								<div class="row">
									<div class="col-lg-6 col-md-12 border-right">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_4][is pl_4.letter pl_4.display_name]<li class="letter-header">[pl_4.letter][else]<li><a href="[pl_4.site]" title="[pl_4.description]">[pl_4.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
									<div class="col-lg-6 col-md-12">
										<ul class="list-unstyled" style="margin-bottom: 0px;">
	    [for pl_5][is pl_5.letter pl_5.display_name]<li class="letter-header">[pl_5.letter][else]<li><a href="[pl_5.site]" title="[pl_5.description]">[pl_5.display_name]</a>[end]</li>
	    [end]</ul>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</section>
<!-- / Projects List -->
