<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content=
  "text/html; charset=us-ascii" />

  <title>Marketing Project - Why?</title>
  <meta name="keywords" content=
  "Marketing, OpenOffice, OpenOffice.org" />
  <link rel="stylesheet" type="text/css" href="marketing.css" />
</head>

<body>
  <div id="MyContent">
    <div class="MyTitle">
      <img style="float: right;" src="images/icons/home.png" /> Why
      do we have a Marketing Project?
    </div>

    <blockquote>
      The Apache OpenOffice Marketing Project exists to promote the
      Apache OpenOffice Community and the Products and Services it
      provides.
    </blockquote>

    <div class="MySubtitle">
      The Apache OpenOffice Community
    </div>

    <p>The Apache OpenOffice <b>Community</b> consists of thousands of
    people who have joined one of our <a href=
    "http://projects.openoffice.org/">Projects</a> and design,
    develop, maintain, translate, test, document, support, promote,
    or in any other way help us bring Apache OpenOffice to the world.</p>

    <div class="MySubtitle">
      OpenOffice Products and Services
    </div>

    <p>OpenOffice's best known <b>Product</b> is the
    OpenOffice <a href=
    "http://www.openoffice.org/product">office productivity
    suite</a>, available in a hundred or so languages on all major
    computing platforms. We also supply <a href=
    "http://extensions.openoffice.org/">extensions</a>,
    which add extra functions to the productivity suite. In
    addition, we are a source of high-quality office software
    <a href="http://udk.openoffice.org/">components</a> for systems
    developers to use in their own products. We have a particular
    expertise in <a href="http://incubator.apache.org/odftoolkit/">ODF
    components</a> <i>(for processing documents in the ISO approved
    Open Document Format)</i>.</p>
  </div>
</body>
</html>
