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

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

  <title>How to help the Marketing Project</title>
  <meta name="keywords" content=
  "Marketing, OpenOffice, OpenOffice.org" />
  <link rel="stylesheet" type="text/css" href="marketing.css" />
</head>

<body>
  <div id="MyContent">
    <h1>
      <img style="float: right;" alt="How icon" src="images/icons/how.png" /> How
      to help
    </h1>

    <p><b>We need you to help the Marketing Project</b> - and it's
    so easy to get started! Have a look at the <a href=
    "http://wiki.services.openoffice.org/wiki/Quick_and_Easy_Activities">
    Quick and Easy Marketing Activities</a> list on the Wiki. Go
    on, do it now!</p>

    <h2>
      Find out <i>Why Apache OpenOffice?</i>
    </h2>

    <p>You're convinced about the benefits of Apache OpenOffice - but
    can you convince other people? Read up on <a href=
    "http://why.openoffice.org">Why Apache OpenOffice?</a> and
    understand the three key messages:</p>

    <ul>
      <li>Apache OpenOffice is <a href=
      "http://why.openoffice.org/why_great.html">great
      software</a></li>

      <li>Apache OpenOffice is <a href=
      "http://why.openoffice.org/why_easy.html">easy to use</a>;
      and</li>

      <li>Apache OpenOffice is <a href=
      "http://why.openoffice.org/why_free.html">free
      software</a>.</li>
    </ul>

    <p>If you are interested
    in marketing theory, you may be interested in reading our
    <a href="http://marketing.openoffice.org/strategy/">Strategic
    Marketing Plan</a>.</p><a name="dev_list" id="dev_list"></a>

    <h2>
      Listen in to the Marketing Project at work
    </h2>

   
    <p>For day to day work, the Marketing Project works through 
    its mailing lists,
    especially the <i>Marketing list</i>. Anyone can subscribe to the mailing list, 
	and subscribing doesn't commit you to anything (except
    receiving some interesting mail). If you are curious,
    interested, but not quite ready yet to take the plunge and
    join, we suggest you subscribe by sending a blank email to
    <a href=
    "mailto:marketing-subscribe@openoffice.apache.org">marketing-subscribe@openoffice.apache.org</a>.
    You may, of course, unsubscribe at any time by sending an email to <a href=
    "mailto:marketing-unsubscribe@openoffice.apache.org">marketing-unsubscribe@openoffice.apache.org</a>.</p>

  </div>
</body>
</html>
