<!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>Apache Project Branding Policy</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">

      <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>
 
  </header>
  <main id="maincontent">
<div class="container">    <p>This <strong>Apache&reg; Project Website Branding Policy</strong> defines how Apache projects
must refer to trademarks and requires a few specific elements on websites.
The <a href="//www.apache.org/foundation/marks/resources">site map of trademark resources</a> is also helpful.</p>
<h1 id="introduction">Apache Project Website Branding Policy<a class="headerlink" href="#introduction" title="Permalink">&para;</a></h1>
<p>This document defines the branding and trademark policies for
how Apache&reg; projects must display certain elements
on their websites, and treat all trademarks - Apache's and those of other
organizations - appropriately. <a href="responsibility.html">The PMC Branding Responsibilities</a> also explains
how PMC members must manage their project's brands in other ways.</p>
<p><strong>Contents</strong></p>
<div class=".pull-right" style="float:right; border-style:dotted; width:200px; padding:5px; margin:5px">
<p>See also: <a href="//www.apache.org/foundation/marks/resources">Trademark Resources site map</a>.</p>
</div>
<div id="toc"><ul><li><a class="toc-href" href="#websites" title="Project Website And URL Policy: Use *.apache.org">Project Website And URL Policy: Use *.apache.org</a></li><li><a class="toc-href" href="#naming" title="Project Naming And Descriptions Policy">Project Naming And Descriptions Policy</a></li><li><a class="toc-href" href="#navigation" title="Website Navigation Links Policy">Website Navigation Links Policy</a></li><li><a class="toc-href" href="#httphttps" title="https or http?">https or http?</a></li><li><a class="toc-href" href="#attributions" title="Trademark Attributions Policy">Trademark Attributions Policy</a></li><li><a class="toc-href" href="#graphics" title="Logos and Graphics Policy">Logos and Graphics Policy</a></li><li><a class="toc-href" href="#poweredby" title="Powered By... Logos">Powered By... Logos</a></li><li><a class="toc-href" href="#metadata" title="Project Metadata">Project Metadata</a></li><li><a class="toc-href" href="#other" title="Other Trademark Requirements">Other Trademark Requirements</a><ul><li><a class="toc-href" href="#nonapache" title="Project-Related Non-apache.org Domain Names">Project-Related Non-apache.org Domain Names</a></li></ul></li><li><a class="toc-href" href="#checklist" title="Project Branding Checklist">Project Branding Checklist</a></li><li><a class="toc-href" href="#rationale" title="Rationale">Rationale</a></li><li><a class="toc-href" href="#notes" title="Important Note">Important Note</a></li></ul></div>
<h1 id="websites">Project Website And URL Policy: Use *.apache.org<a class="headerlink" href="#websites" title="Permalink">&para;</a></h1>
<ul>
<li>
<p>Apache projects must host official website content on an
<code>apache.org</code> domain. This includes content overseen by the
project's PMC (including the top level website, download pages, and wikis),
ensures that the ASF infrastructure team can maintain the
services, and informs users that the content is official
and comes from the ASF and the project's PMC, and not from a third party.</p>
</li>
<li>
<p>The homepage for any <em>ProjectName</em> must be served from
<code>http[s]://ProjectName.apache.org</code>, to ensure consistent branding
and to allow for automatically generated links (like
<a href="https://projects.apache.org">https://projects.apache.org</a>). All
primary links to the project as a whole must point directly to the
homepage, and not to alternative sites or domains.</p>
</li>
<li>
<p>Projects are free to use any <a href="//www.apache.org/dev/project-site.html">infrastructure-supported
technology</a> to manage and deploy their websites, and are
free to use any look and feel in its design. In the future, we
may ask projects to add a specific style or graphical element
(from a choice of several variants) for their link back to
<a href="http://www.apache.org">www.apache.org</a> that will help give users a better sense of
the connection between all Apache projects.</p>
</li>
<li>
<p>New communities joining the Apache Incubator which have a long
open-source development history with a large userbase should
read about <a href="#nonapache">limitations on using non-apache.org domains</a>.</p>
</li>
</ul>
<h1 id="naming">Project Naming And Descriptions Policy<a class="headerlink" href="#naming" title="Permalink">&para;</a></h1>
<p><em>Guidelines for <a href="/dev/project-names">choosing names of new projects</a> exist, but haven't
yet been reviewed and merged into this policy document.</em></p>
<ul>
<li>
<p><a id="projectname"></a>The primary branding for any project or product
name must be in the form of "Apache <em>Projectname</em>". This ensures that users associate the project or
product with the ASF as a whole, and that third parties cannot easily misuse our project names.
The first and most prominent references to a project or product on
every page, and uses in page titles or headers, must use the "Apache <em>Projectname</em>" form of the name. Other references may
use either "Apache <em>Projectname</em>" or "<em>Projectname</em>" as appropriate for the context.</p>
</li>
<li>
<p><a id="markdesc"></a>Every product homepage and any overview download page
for the product must include a prominent reference to the product as
"Apache Foo software", and must include a brief, one-sentence description of the purpose and
function of the software product itself. For example:</p>
</li>
</ul>
<blockquote>
<p>The Apache Xerces XML parsing library software provides a complete
implementation of the XML 1.0 parsing specification, and is easily configurable and
compliant with current standards.</p>
</blockquote>
<p>This description is useful for new readers to your page, and helps the ASF maintain an overall list of trademarks for our
software products. A trademark is only important when associated with a
specific kind of goods: in our case with the actual downloadable software products
that the ASF and our PMCs provide.</p>
<p>Note that it's helpful to share the proposed sample description with trademarks@, to
ensure it's a proper trademark goods description. For
example, in the past Apache Tomcat's website said it was an
"implementation" and a "collaboration", not a product with functionality. Apache SpamAssassin's website
described itself as a "project" and a "version" and otherwise referred to the
software as "it". Neither of these contained a proper trademark goods
description (i.e. computer software that performs a function). While
this trademark description style may sometimes seem clumsy in technical
documentation, it is a critical way that we can enforce our trademarks. It only needs to be done in one prominent place on the website for each project.</p>
<ul>
<li>
<p>Always present the <a id="adjective"></a>project and product names in a consistent
casing and as an adjective, and never as a noun or verb, which is how any
trademark should be used. This is important to do on your project
homepage and on the download page; at other places on the website
or in technical product documentation it's not required.</p>
</li>
<li>
<p>We consider the names of all projects, subprojects, and products to be
trademarks of the ASF. While not all bare product names (i.e. just "Foo")
may be exclusive trademarks of the ASF, all names in the form of "Apache
Foo" should be exclusive to the ASF.</p>
</li>
</ul>
<p><strong>Terminology:</strong> a <strong>project</strong> or <strong>subproject</strong> is a community and any
associated products that are managed by a PMC; the same brand guidelines
apply to both. A <strong>product</strong> is a specific, downloadable software product
that our users might want to use in some way. There are a few
specific requirements for product branding. Note that <em>most</em> projects and
subprojects release a product with the same name (i.e. the Apache Foo
project releases a software product called Apache Foo).</p>
<h1 id="navigation">Website Navigation Links Policy<a class="headerlink" href="#navigation" title="Permalink">&para;</a></h1>
<p>Whatever main navigation system your project website uses, it must feature
certain text links back to key pages on the main <code>www.apache.org</code> website. These
links can appear in whatever main navigation system your site uses on
all top level pages for the project or subproject.</p>
<ul>
<li>
<p>"License" should link to: <code>www.apache.org/licenses/</code></p>
</li>
<li>
<p>"Sponsorship" or "Donate" should link to:
<code>www.apache.org/foundation/sponsorship.html</code></p>
</li>
<li>
<p>"Sponsors", "Thanks" or "Thanks to our Sponsors" should link to:
<code>www.apache.org/foundation/thanks.html</code></p>
</li>
<li>
<p>"Security" should link to either to a project-specific page detailing how
users may securely report potential vulnerabilities, or to the main
<a href="//www.apache.org/security/">www.apache.org/security/</a> page</p>
</li>
<li>
<p>"Privacy" should link to:
<code>privacy.apache.org/policies/privacy-policy-public.html</code></p>
</li>
<li>
<p>All projects must feature some prominent link back to the main ASF
homepage at <code>www.apache.org</code>. This
may either be a featured link in your main navigation system or a
text link in your Main homepage text. A best practice is to include a short
sentence or paragraph on the homepage noting that this project is an Apache
project, and is part of a larger community of developers and users.</p>
</li>
</ul>
<p>If you have suggestions for the texts for links pointing back to
the main ASF pages that better fit with
your project's web presence, please let <code>trademarks@</code> know.</p>
<p><strong>Including "Thanks" links to third parties</strong> - if your project
typically has companies that donate software licenses or support to
project committers, please follow the <a href="//www.apache.org/foundation/marks/linking">Corporate Recognition Guidelines</a>.
It is important to ensure any such pages are presented publicly in a
manner that is distinctly different from material related to the formal Sponsorship program.</p>
<h1 id="httphttps">https or http?<a class="headerlink" href="#httphttps" title="Permalink">&para;</a></h1>
<p>Projects are free to use http, https or protocol relative
links for the  mandatory links required by the website navigation links policy.</p>
<p>We recommend, but do not require, that projects:</p>
<ul>
<li>
<p>Use https for links where the target automatically switches to https when http is used</p>
</li>
<li>
<p>Use protocol relative links for all other targets</p>
</li>
</ul>
<h1 id="attributions">Trademark Attributions Policy<a class="headerlink" href="#attributions" title="Permalink">&para;</a></h1>
<ul>
<li><a id="asfmarks"></a>All project or product homepages must feature a
prominent trademark attribution of all applicable Apache trademarks. Other project
pages should feature attributions of any marks displayed thereon. For
example:</li>
</ul>
<blockquote>
<p>Apache Foo, Foo, Apache, the Apache feather logo, and the Apache Foo
project logo are either registered trademarks or trademarks of The Apache
Software Foundation in the United States and other countries.</p>
</blockquote>
<p>This may appear in page footers or in any other appropriate location.</p>
<ul>
<li>
<p>At the top of each project or product homepage, and on the top banner of
each page where the project name appears, you should include the appropriate &trade; or &reg; symbol
next to the <strong>first</strong> main occurrence of the "Apache Foo" project name, both
in header/title text and at the name's first appearance in running text.
This highlights our trademark claim and emphasizes its importance to us.</p>
</li>
<li>
<p><a id="othermarks"></a>You must give proper attribution to any other
organization's trademarks that your website refers to. All non-ASF
trademarks must be attributed to their owners when displayed on ASF project
websites. You may do this specifically for each referred mark, or
generically; it is typically done in the footer of a webpage. For a
specific example:</p>
</li>
</ul>
<blockquote>
<p>FooBar and the FooBar logo are trademarks of Yoyodyne, Inc.</p>
</blockquote>
<p>To provide a generic trademark attribution (to cover cases where a
large number of marks are used, or in case we're not sure which words are
other organizations' marks), you can add instead:</p>
<blockquote>
<p>All other marks mentioned may be trademarks or registered trademarks of
their respective owners.</p>
</blockquote>
<h1 id="graphics">Logos and Graphics Policy<a class="headerlink" href="#graphics" title="Permalink">&para;</a></h1>
<ul>
<li>
<p><a id="marklogo"></a>Logos are important to recognize as trademarks as
well. For the project's official logo (if it has one, and especially if it
uses the ASF feather), ensure that it includes a small "TM" symbol in the
graphic or immediately adjacent to it. For pages that include the project
logo on them, ensure you mention "... and the Project logo are
trademarks..." in the attribution.</p>
</li>
<li>
<p>Projects may choose to use the Apache feather in their logo. For details on the proper <a href="//www.apache.org/foundation/press/kit/#links">Apache visual identity and feather graphics</a>,
please work with press@.</p>
</li>
</ul>
<h1 id="poweredby">Powered By... Logos<a class="headerlink" href="#poweredby" title="Permalink">&para;</a></h1>
<p>We encourage projects to create a variation of their main logo as a
"Powered By..." or " <em>Project</em> Inside" logo. Third parties may use this logo
to denote that they build products or services using the associated
product. While we must ensure that the main product logo is associated with
the actual product that the Apache project provides, we allow third parties
to <a href="//www.apache.org/foundation/marks/faq/#poweredby">more broadly use "Powered by..." logos</a>
in conjunction with their own products.</p>
<p><a href="//www.apache.org/foundation/press/kit/#poweredby">Powered By Apache logos</a>
are available for all projects to use (or request updates to).</p>
<h1 id="metadata">Project Metadata<a class="headerlink" href="#metadata" title="Permalink">&para;</a></h1>
<p><a id="doap"></a>All projects must provide a DOAP - Description Of A
Project - file or entry for both the project itself and all product
releases that they make - <strong>OR</strong> otherwise provide structured
data such that the projects.apache.org website can find it. Follow the <a href="https://projects.apache.org/about.html">guidelines
at</a> to make a DOAP file and
register it. This will allow the ASF to best showcase all of its projects
and products in a variety of ways.</p>
<p>Update <a href="//www.apache.org/foundation/marks/list/">Apache Trademark Lists</a>, briefly describing each software product.
In the future, we hope to generate this list from DOAP files of all products.</p>
<h1 id="other">Other Trademark Requirements<a class="headerlink" href="#other" title="Permalink">&para;</a></h1>
<p>If your project has subprojects that are software-language-specific, be
sure to name them appropriately. For example, "Apache Xerces Perl" is not
appropriate, since it improperly uses the trademark "Perl". A better
project name would be "Apache Xerces for Perl". The ASF could
allow a third party named FooBar to ship a software product called "FooBar
Software for Apache Xerces" or "BarFoo Services for Apache Xerces". The ASF
would not allow Foobar to use "FooBar Xerces" or "BarFoo Xerces" forms of a name, since Xerces is our trademark. The same applies to the use
of the word "Perl" (which is <a href="https://www.perlfoundation.org/trademarks.html">a trademark of The Perl
Foundation</a> ).</p>
<p><strong>Registered Trademarks</strong> If a PMC would like to request legal registration
of their project's trademarks, <a href="//www.apache.org/foundation/marks/register#register">follow the REGREQUEST instructions</a>.</p>
<h2 id="nonapache">Project-Related Non-apache.org Domain Names<a class="headerlink" href="#nonapache" title="Permalink">&para;</a></h2>
<p>To ensure consistent branding and assure users that content is official and
from the ASF and our PMCs, all existing projects must host all content managed
by the PMC on the ProjectName.apache.org domain.</p>
<p><strong>IMPORTANT:</strong> Projects may <strong>not</strong> use domain names owned by third parties to host
official project content.  The content must be migrated, or the domain
registration must be transferred to the ASF.</p>
<p><strong>If</strong> a new community coming to the Apache Incubator has a long history
of using an existing domain name, and has a significant userbase,
the podling may <em>request</em> to keep these names for <strong>limited uses</strong>
once the podling graduates to TLP.</p>
<p><strong>Steps for podlings with non-apache.org domains</strong></p>
<ul>
<li>
<p>During Incubation, the PPMC must work with Apache Infrastructure
to formally transfer any needed domain name registrations to the ASF.
As a non-profit, the ASF expects that these will be donated.<br/>
Create an INFRA Jira ticket to officially request that the
ASF take over ownership of the donated domain namep.</p>
</li>
<li>
<p>The PPMC should send their plan of how they intend to use their
non-apache.org domains to Brand Management/trademarks@ for approval.</p>
</li>
<li>
<p>During Incubation, the PPMC must transition all development-oriented
information and the primary project homepage to the
official ProjectName.apache.org homepage. This is required
before a project may graduate.</p>
</li>
</ul>
<p><strong>Factors to consider for use of non-apache.org domains</strong></p>
<ul>
<li>
<p>The primary development homepage, which includes all the common things that a
potential contributor would need to find out about before deciding whether to join the project,
must be hosted at <em>ProjectName</em>.apache.org.</p>
</li>
<li>
<p>Major links promoting the project to likely contributors should always
point to <em>ProjectName</em>.apache.org resources directly, and not to non-apache.org domains.</p>
</li>
<li>
<p>In most cases, non-apache.org domains should simply redirect to some place within the
ProjectName.apache.org/path domain, unless the podling has <em>each</em> of these really
good reasons to use a non-apache.org domain:</p>
</li>
</ul>
<p>-- The domain was very well-known by the user and contributor
communities long before the project came to the ASF.</p>
<p>-- The domain is only used to provide <em>end user</em> level information.</p>
<p>-- The domain is Apache branded in appearance just as a.o sites are,
and offers clear and prominent links directly to project.a.o/path for
all likely contributor topics, like downloads, API docs, and mailing lists.</p>
<p><strong>Examples of non-apache.org domain approvals</strong></p>
<p>These are exceptions, and are not the case for the majority of new projects:</p>
<ul>
<li>
<p>openoffice.org is a user-facing portal with a huge history and millions of
users on it. Continuing that as a user portal is important to serve the
existing non-technical users.</p>
</li>
<li>
<p>groovy-lang.org is long-running, user-facing portal. This domain is
still used as an end-user portal with information about the Groovy
language. Developer information (for contributors to the
Groovy codebase), discussions, and downloads are all on the
expected groovy.apache.org website.</p>
</li>
</ul>
<h1 id="checklist">Project Branding Checklist<a class="headerlink" href="#checklist" title="Permalink">&para;</a></h1>
<p>All Apache top level projects should comply fully with these guidelines.
Any projects which are not compliant must work with trademarks@ to ensure that they become compliant.
All Incubator podlings must either comply with all requirements before graduation, or
have a specific and short-term action plan to complete compliance soon after
graduation (in case there are technical issues with website updates, etc.).</p>
<p>Contact trademarks@ directly with branding questions - there is no
longer any need to include this in your board reports.</p>
<p><strong>Project Branding Report Checklist</strong></p>
<ul>
<li>
<p><a href="#websites">Project Website Basics</a> : homepage is project.apache.org</p>
</li>
<li>
<p><a href="#naming">Project Naming And Descriptions</a> : use proper Apache forms,
describe product, etc.</p>
</li>
<li>
<p><a href="#navigation">Website Navigation Links</a> : navbar links included, link to
<a href="http://www.apache.org">www.apache.org</a> included</p>
</li>
<li>
<p><a href="#attributions">Trademark Attributions</a> : attribution for all ASF marks
included in footers, etc.</p>
</li>
<li>
<p><a href="#graphics">Logos and Graphics</a> : include TM, use consistent product
logo on your site</p>
</li>
<li>
<p><a href="#metadata">Project Metadata</a> : DOAP file checked in and up to date</p>
</li>
<li>
<p><a href="responsibility.html">Read PMC Branding Responsibilities</a></p>
</li>
</ul>
<h1 id="rationale">Rationale<a class="headerlink" href="#rationale" title="Permalink">&para;</a></h1>
<p>This policy helps to promote and improve the image of all
projects that are part of the ASF, to show that all
Apache&reg; projects are part of the "community of
developers and users" that we believe is an important factor in our
success. While each of our projects manages their own affairs within the
broad guidelines of the Apache Way, a consistent public branding and web
presence that ties all of our projects together with the well-known
<code>www.apache.org</code> homepage benefits all of us by ensuring that
end users and future contributors know how to find official project resources.</p>
<p>Similarly, displaying Apache names and logos properly on our project pages
helps maintain our legal rights to the trademarks they embody.
Using the appropriate &trade; and &reg; symbols, and using trademarks properly to
refer to our actual software products, are key ways that we tell the
world (and lawyers) that these trademarks are valuable to us.</p>
<p><strong>Questions?</strong> Apache committers with questions can <a href="//www.apache.org/foundation/marks/contact#pmc">contact the Trademarks Committee</a>. The <a href="//www.apache.org/foundation/marks/">formal
Trademark Policy</a> explains
how other organizations should refer to Apache project trademarks and logos. A <a href="//www.apache.org/foundation/marks/list">list of ASF
trademarks</a> and
<a href="reporting.html">guidelines for reporting potential misuses of trademarks</a> are also available.</p>
<p><strong>Incubator Podlings</strong> in the Apache
Incubator have their own <a href="//incubator.apache.org/guides/branding.html">detailed Podling branding
guidelines</a>. Direct questions about these guidelines to the
general@incubator list. Podlings must comply with all Project Branding
Requirements <em>before</em> graduation to a top level project.</p>
<h1 id="notes">Important Note<a class="headerlink" href="#notes" title="Permalink">&para;</a></h1>
<p><strong>Nothing in this ASF policy statement shall be interpreted to allow any
third party to claim any association with the Apache Software Foundation or
any of its projects or to imply any approval or support by ASF for any
third party products or services.</strong></p>
<p>This document is aimed at the ASF's internal community and the PMCs that
manage our projects, and does not override or replace our <a href="//www.apache.org/foundation/marks/">formal Trademark
Policy</a>. If you have a question
that is not specifically answered here or that you'd like further
clarification on, please <a href="//www.apache.org/foundation/marks/contact#pmc">contact us</a>.
Further <a href="//www.apache.org/foundation/marks/resources">resources about trademark law and policy</a> are also available.</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>