<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Home page of The Apache Software Foundation">
  <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png">
  <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194">
  <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192">
  <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
  <link rel="manifest" href="/favicons/manifest.json">
  <link rel="shortcut icon" href="/favicons/favicon.ico">
  <meta name="msapplication-TileColor" content="#603cba">
  <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png">
  <meta name="msapplication-config" content="/favicons/browserconfig.xml">
  <meta name="theme-color" content="#282661">

  <title>Sponsorship</title>
  <link href="/css/Montserrat-300-600.css" rel="stylesheet">
  <link href="/css/min.bootstrap.css" rel="stylesheet">
  <link href="/css/styles.css" rel="stylesheet">
  <style>
.headerlink {
  visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}  </style>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</head>

<body >
  <!-- Navigation -->
  <header>
	<div id="skiptocontent">
		<a href="#maincontent">Skip to Main Content</a>
	</div>
    <nav class="navbar navbar-inverse navbar-fixed-top mainmenu">
      <div class="container">
        <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>
        <div class="collapse navbar-collapse" id="mainnav-collapse">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="https://smile.amazon.com/gp/chpf/homepage/ref=smi_se_scyc_srch_stsr?q=apache+software+foundation&orig=%2F">Shop smile.amazon.com</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="/travel/">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search"
                  aria-hidden="true"></span><span class="sr-only">Search</span></a>
              <ul class="dropdown-menu search-form" role="search">
                <li>
                  <div class="input-group" style="width: 100%; padding: 0 5px;">
                    <script async src="https://cse.google.com/cse.js?cx=cb41d2753d228d8b7"></script>
                    <div class="gcse-search"></div>
                  </div>
                </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </header>
  <!-- / Navigation -->
  <header id="main-header" class="container">
    <div class="sideImg">
          <a class="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </a>
      <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a>
    </div>
    <div class="main">
      <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo">
      <h2 class="text-center">Community-led development "The&nbsp;Apache&nbsp;Way"</h2>
      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
    <div class="sideImg">
      <a href="/foundation/contributing.html"><img class="img-responsive" src="/img/support-apache.jpg" alt="Apache Support Logo" /></a>
    </div>
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="the-apache-software-foundation-sponsorship-program">The Apache Software Foundation Sponsorship Program<a class="headerlink" href="#the-apache-software-foundation-sponsorship-program" title="Permalink">&para;</a></h1>
<p>The ASF Sponsorship Program is the way that corporations and individuals can
contribute substantially to the ongoing support of the Foundation. (As distinct
from <a href="contributing.html">one-time donations</a>.)</p>
<p>In return, the ASF will officially acknowledge your donation via various methods
appropriate to your sponsorship level. We will display your logo and link on the
<a href="thanks.html">ASF Thanks page</a> and provide an official sponsor image to place on
your website. (<em>Logo and link subject to ASF approval.</em>)</p>
<ul>
<li><a href="#Levels">Sponsorship levels</a></li>
<li><a href="#WhySponsor">Why should I sponsor the ASF?</a></li>
<li><a href="#FundsGo">Where will my sponsorship funds go?</a></li>
<li><a href="#WhoCanSponsor">Who can sponsor the ASF?</a></li>
<li><a href="#tax-status">The ASF is a non-profit organization</a></li>
<li><a href="#Sponsor">I'd like to talk to someone about supporting the ASF!</a></li>
<li><a href="#Renewals">How do sponsorship renewals happen?</a></li>
<li><a href="#Donations">Can I just make a one-time donation?</a></li>
<li><a href="/foundation/thanks.html">Who are the current sponsors?</a></li>
</ul>
<h2 id="Levels">Sponsorship Levels<a class="headerlink" href="#Levels" title="Permalink">&para;</a></h2>
<p>There are four sponsorship levels, defined by donation amount and in-return
benefits of sponsorship. No more than 25% of value can be based on
in-kind services</p>
<p>You must coordinate with the ASF Public Relations and Fundraising Team
(<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>) on all donations you make.</p>
<table class="table">
<tr><td background="platinum.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="platinum">Platinum<a class="headerlink" href="#platinum" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$125k</strong>/year</li>
<li>Your logo (max size: 400x179) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: top section of page</li>
<li>Logo in rotating, random placement</li>
<li>Logo in a two column row</li>
</ul>
</li>
<li>Use of the ASF Platinum Sponsorship logo for your site</li>
<li>Joint press release with the ASF</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Sponsor co-authored Case Study</li>
<li>New: &ldquo;Success At Apache&rdquo; Guest Post</li>
<li>New: Media testimonial placement + spokesperson opportunities</li>
<li>New: Dedicated Sponsorship Ambassador</li>
</ul>
</td>
<td background="gold.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="gold">Gold<a class="headerlink" href="#gold" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$50k</strong>/year</li>
<li>Your logo (max size: 223x100) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: upper-middle section of page</li>
<li>Logo in alphabetical placement</li>
<li>Logo in three column row</li>
</ul>
</li>
<li>Use of the ASF Gold Sponsorship logo for your site</li>
<li>Personal quote for your press release</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Sponsor co-authored Case Study</li>
<li>New: Media testimonial placement + spokesperson opportunities</li>
<li>New: Dedicated Sponsorship Ambassador</li>
</ul>
</td></tr>
<tr><td background="silver.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="silver">Silver<a class="headerlink" href="#silver" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$25k</strong>/year</li>
<li>Your logo (max size: 150x67) on our ASF Thanks page with rel="sponsored" link
  <ul>
<li>Logo location: lower-middle section of page</li>
<li>Logo in alphabetical placement</li>
<li>Logo in four column row</li>
</ul>
</li>
<li>Use of the ASF Silver Sponsorship logo for your site</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
<li>Listed in all ASF press releases</li>
<li>New: Dedicated ASF Ambassador</li>
</ul>
</td>
<td background="bronze.png" style="background-repeat:no-repeat;background-position: 90% 5%;">
<br/>
<h3 id="bronze">Bronze<a class="headerlink" href="#bronze" title="Permalink">&para;</a></h3>
<br/><br/><br/>
<ul>
<li>Donation level: <strong>US$6k</strong>/year</li>
<li>Text mention on our ASF Thanks page rel="sponsored" link
  <ul>
<li>Text mention location: lower section of page</li>
<li>Alphabetical placement</li>
<li>Shared row</li>
</ul>
</li>
<li>Use of the ASF Bronze Sponsorship logo for your site</li>
<li>Listed in ASF Quarterly + Annual Reports</li>
</ul>
</td>
</tr>
</table>
<h2 id="WhySponsor">Why should I sponsor the ASF?<a class="headerlink" href="#WhySponsor" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation provides support for the Apache community of
open-source software <a href="projects.html">projects</a>. Apache projects use a collaborative, consensus-based development process, an
open and pragmatic software license, and a desire to create high quality
software that leads the way in its field. We consider ourselves not simply
a group of projects sharing a server, but rather a community of developers
and users.</p>
<p>The ASF provides the infrastructure for the projects - the mailing lists,
code repositories, bug tracking systems, etc. A few paid contractors, plus
large amounts of volunteer effort, maintain these resources. This,
in addition to the large costs of bandwidth and server hardware, constitutes
the bulk of the expense of running the Foundation.</p>
<p>By sponsoring the ASF you show your support for our mission and help
sustain a vibrant organization. Sponsorship also shows your support for
Open Source and gives you the opportunity to "give back" to the
community. Finally, since the ASF is non-profit organization, sponsorship
provides attractive tax benefits.</p>
<h2 id="FundsGo">Where will my sponsorship funds go?<a class="headerlink" href="#FundsGo" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation comprises 200+ top level projects, more than 800 active members, over 8,200 committers and countless contributors and users. We oversee hundreds of millions of lines of code, supported by an extensive infrastructure comprising ~200 individual machines, 1,400+ repositories, 5-6 petabytes in annual traffic, ~75M downloads per month, and 2-3M daily emails on 2,000+ lists.</p>
<p>We also have the normal business operating expenses which go with any
organization. These include:</p>
<ul>
<li>Infrastructure costs</li>
<li>Legal and Accounting</li>
<li>Marketing and PR</li>
<li>Ongoing office expenses and administrative duties</li>
</ul>
<p>Your sponsorship helps the ASF meet these expenses and
expand our capability to maintain our leadership in the developer and Open
Source communities. Funding lets us perform pro-active hardware
procurement, enhance our community outreach, sponsor developer hackathons
and user groups, and perform non-code related improvements to projects such
as better documentation and more comprehensive websites</p>
<h2 id="WhoCanSponsor">Who can sponsor the ASF?<a class="headerlink" href="#WhoCanSponsor" title="Permalink">&para;</a></h2>
<p>From time to time there is confusion about who can sponsor the Apache Software Foundation.
Additionally, there are often inquiries from potential sponsors who are not committed
to the mission of the ASF or open source software.</p>
<p>Because The Apache Software Foundation Sponsorship Program needs to apply its policies quickly,
fairly and equally, without the need for exceptions or board votes, we have tried to
maintain this document at the most basic level.  However, the Foundation reserves the right
to decline any sponsor without providing a reason and at our sole discretion.</p>
<p>In short, sponsors must be:</p>
<ul>
<li>An individual or a business located anywhere in the world that would be legal to operate anywhere in the United States and any state of nexus* for the ASF, excluding businesses, persons and jurisdiction limited by law.  This is necessary to avoid legal risks and protect our non-profit status.</li>
<li>Demonstrably committed to open source software and The Foundation&rsquo;s mission.</li>
</ul>
<p>Landing pages for sponsor links cannot be advertisements or redirectors and must be &ldquo;PG Rated&rdquo; and safe for work environments.  All links should go to a home page or a page with relevant, editorial content about open source software. Any sites with content unsuitable for minors must use a landing page that is completely kid-safe, with appropriate warnings, and that meets US legal requirements such as the FTC&rsquo;s COPPA requirements.</p>
<p><super>*</super><sub><strong>Nexus</strong>, also called &ldquo;sufficient physical presence&rdquo;, is a legal term that refers to the requirement for companies doing business in a state to collect and pay tax on sales in that state. For example, if you sell goods or services in Los Angeles, you must file and pay California state taxes. Source: <a href="https://quickbooks.intuit.com/r/taxes/what-is-nexus-and-how-does-it-affect-your-small-business">https://quickbooks.intuit.com/r/taxes/what-is-nexus-and-how-does-it-affect-your-small-business</a>.</sub></p>
<h2 id="Links">A note about links<a class="headerlink" href="#Links" title="Permalink">&para;</a></h2>
<p>Our sponsors demonstrate their commitment to Open Source Software by supporting us in our mission of providing software for the public good. We do this by providing services and support for many like-minded software project communities consisting of individuals who choose to participate in ASF activities. In the past, some sponsors have been primarily interested in the SEO benefits of being listed on the sponsors page. To address this issue, all sponsor thank-you listings include a rel="sponsored" tag as suggested by <a href="https://webmasters.googleblog.com/2019/09/evolving-nofollow-new-ways-to-identify.html">popular webmaster policies</a>.</p>
<h2 id="tax-status">The Apache Software Foundation is a non-profit organization<a class="headerlink" href="#tax-status" title="Permalink">&para;</a></h2>
<p>The Apache Software Foundation is a private operating foundation that is
registered as a 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>. We are not
accountants, so this cannot be trusted as financial advice of any kind, but
we hope this description will be useful to those who advise you in these
matters. You may view our <a href="records/ASF-501c3.pdf">ruling letter from the IRS acknowledging our
501(c)3 status</a>.</p>
<p>You may review the latest financial filings and non-profit exemption
application of The Apache Software Foundation in our <a href="records/">public
records</a> section. You may find other helpful information
through
<a href="https://www.guidestar.org/profile/47-0825376">GuideStar</a>
(requires free registration for full access).</p>
<p>You can find more information about non-profits and related issues at the
<a href="http://www.nonprofits.org/">Internet Nonprofit Center</a>.</p>
<h2 id="Sponsor">I'd like to talk to someone about supporting the ASF!<a class="headerlink" href="#Sponsor" title="Permalink">&para;</a></h2>
<p>If you would like more information about supporting the ASF, please contact
<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>.
We handle sponsorship donations
differently from <a href="contributing.html">standard non-directed donations</a>,
so if you want your
donations to be part of the Sponsorship program (and thus obtain the
benefits of the program), coordinate the donation with the
Fundraising team
(<a href="mailto:fundraising@apache.org">fundraising@apache.org</a>).</p>
<p>We keep all information in strictest confidence.</p>
<h2 id="Renewals">How do sponsorship renewals happen?<a class="headerlink" href="#Renewals" title="Permalink">&para;</a></h2>
<p>Your sponsorship runs for one year after the date of receipt of payment.
During this period, we display your logo on our <a href="/foundation/thanks.html">thanks</a>
page.</p>
<p>Two months before the end of your sponsorship, we will contact you (via the
same mechanism we used to arrange the initial sponsorship) requesting
renewal. If renewal does not take place by the renewal date of the sponsorship,
the ASF may remove your logo from the thanks page.</p>
<h2 id="Donations">Can I just make a one-time donation?<a class="headerlink" href="#Donations" title="Permalink">&para;</a></h2>
<p>The ASF appreciates donations of any size and, as we are a US registered 501(c)(3)
corporation, your donation may be tax deductible.  If you are interested in
donating to the ASF at a different level than sponsorship, see our
<a href="/foundation/contributing.html">donation page</a>.</p>
<p>Thanks for your support!</p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="/travel/">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="/foundation/policies/privacy.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
          <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p>
        </div>
      </div>
    </div>

  </footer>

  <!-- / Footer -->

  <script src="/js/jquery-2.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>
  <script src="/js/slideshow.js"></script>
  <script>
    (function($){
    $(document).ready(function(){
    $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
    event.preventDefault();
    event.stopPropagation();
    $(this).parent().siblings().removeClass('open');
    $(this).parent().toggleClass('open');
    console.log('WOrked');
    });
    });
    })(jQuery);
  </script>
</body>
</html>