

<!--#include virtual="/doctype.html" -->
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <link href="/css/ooo.css" rel="stylesheet" type="text/css">
    
    <title>Help Us Help the World</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="Keywords" content="Apache, ASF, OpenOffice, donations contributions">
    <meta name="Description" content="Information on how to donate to the Apache Software Foundation to benefit Apache OpenOffice and other Apache projects">
    
    <style>

     .left {
    float: left;
    width: 50%;
    padding: 5px 25px 5px 5px;
     }

     .right {
    margin-left: 50%;
    padding: 5px 5px 5px 25px;
     }
    </style>


    
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
  </head>
  <body>
    <!--#include virtual="/brand.html" -->
    <div id="topbara">
      <!--#include virtual="/topnav.html" -->
      <div id="breadcrumbsa"><a href="/">home</a></div>
    </div>
    <div id="clear"></div>
      
      
    <div id="content">
      
      

<div class="left">

<h2>A Good Cause</h2>

<p>
	Apache OpenOffice, the leading open source office productivity software, is published by the non-profit <a href="https://www.apache.org">Apache Software Foundation</a> (ASF). Apache OpenOffice has been downloaded
<a href="https://www.openoffice.org/stats/downloads.html">over 350 million times</a>, by users in <a href="https://www.openoffice.org/stats/countries.html">over 240 countries</a>.
Commercial alternatives to OpenOffice sell for 100 USD or more, and come without the legal right to make copies and share the software.</p>

<p>
Apache OpenOffice is only one of <a href="https://projects.apache.org/projects.html?name">many open source projects</a> that are part of the Apache Software Foundation. The ASF comprises over 350 open source
projects, over 620 active members, over 5,500 committers and countless contributors and users. We are responsible for millions of lines of code and the 35+ servers which make up our
infrastructure.</p>

	<p><strong>We invite you to donate to the Apache Software Foundation, to support Apache OpenOffice as well as the many other projects at Apache.</strong>
		Your contribution shows your support for our mission and help sustain a vibrant organization. Your contribution also shows your support for Open Source
		and provides you the opportunity to "give back" to the community.</p>

<h2>How we use Donations</h2>

<p>The Apache Software Foundation provides the technical infrastructure for the projects &mdash; the mailing lists, code repositories, bug tracking systems, etc. We have the normal
business operating expenses which go with any organization. These include: Bandwidth costs, Servers and hardware, Legal and Accounting, Normal office expenses, Marketing and PR,
Sub-contractors to "fill in the holes" for administrative and secretarial duties.</p>
	
<p>As a public charity our budget is transparent and spending is documented in our <a href="https://www.apache.org/foundation/board/calendar.html">Board minutes</a></p>	
	
</div>

<div class="right">
<h2>How to Donate</h2>
<p>
We have another page that describes <a href="https://www.apache.org/foundation/contributing.html#make-a-donation">ways to donate to the ASF</a>.
The Apache Software Foundation is a registered non-profit, charitable organization under Section 501(c)(3) of the U.S. Internal Revenue Code. This means that, 
for individuals within the U.S., donations to the ASF should be <strong>tax-deductible</strong>. (Check with your tax accountant to confirm details for your personal situation.)</p>
</p>
</div>


      
    </div>
    <!--#include virtual="/footer.html" -->
  </body>
</html>
