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</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">
<!--
        <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>
-->
       <article class="card">
         <div class="content">
           <span class="label label-danger">Foundation Blog</span>
               [for foundation]<h5><a class="entryTitle" href="[foundation.href]">[foundation.title]</a></h5>
[end]         </div>
         <a class="continue" href="https://news.apache.org/">Continue Reading&nbsp;&rarr;</a>
       </article>
        <article class="card">
         <div class="content">
           <span class="label label-danger">Project Blogs</span>
               [for planet]<h5><a class="entryTitle" href="[planet.href]">[planet.title]</a></h5>
[end]         </div>
         <a class="continue" href="https://blogs.apache.org">Continue Reading&nbsp;&rarr;</a>
       </article>
        <article class="card">
         <div class="content">
           <span class="label label-danger">Conferences</span>
               [for conferences]<h5><a class="entryTitle" href="[conferences.href]">[conferences.title]</a></h5>
[end]         </div>
         <a class="continue" href="https://blogs.apache.org/conferences">Continue Reading&nbsp;&rarr;</a>
       </article>
     </div>
 <!-- /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">
  <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 -->
