<!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" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="name" content="Apache OpenOffice" />
    <meta name="description" content="The official home page of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base." />
    <meta name="keywords" content="OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Official, Official Site, Writer, Calc, Impress, Draw, Base, ODF, Open Document Format, free office editors" />
    <title>Apache OpenOffice - Social Media</title>
</head>

<body>
  <h1>Official Announcements</h1>

  <p>
    The announce mailing list is the official avenue for announcements from Apache OpenOffice. This is a low-volume list.
    All users and interested parties are encouraged to subscribe in order to receive release announcements, security
    bulletins and other important updates.
  </p>
  <p>
    To subscribe to the announce mailing list, send an empty email to
    <a href="mailto:announce-subscribe@openoffice.apache.org">announce-subscribe@openoffice.apache.org</a> and respond to
    the confirmation mail you will receive.
  </p>
  <p>
    For more information about how to work with mailing lists
    <a href="https://openoffice.apache.org/mailing-lists.html">please see here</a>.
  </p>

  <h1>Social Media</h1>

  <p>
    The Apache OpenOffice project provides occasional news updates and announcement via a variety of popular social media
    outlets. We invite you to follow us on any of these social networks, and to share our posts with friends in your
    network.
  </p>
  <p>
    We also have an <a href="https://blogs.apache.org/OOo/">official blog</a>, which features more in depth stories about
    Apache OpenOffice, previews of upcoming features and other interesting things.
  </p>

  <h2>Social Media Channels</h2>

  <table>
    <tr>
      <td>
        <h3><b>Follow us on our Official Blog</b></h3>
      </td>
      <td>
        <h3><b>Follow us on Facebook</b></h3>
      </td>
      <td>
        <h3><b>Follow the Facebook Group</b></h3>
      </td>
      <td>
        <h3><b>Follow us on Twitter</b></h3>
      </td>
      <td>
        <h3><b>Follow us on YouTube</b></h3>
      </td>
    </tr>
    <tr>
      <!-- Apache OpenOffice Official Blog -->
      <td>
        <a href="https://blogs.apache.org/OOo/" title="Follow us on our Official Blog" target=_blank>Official Blog
        <img src="/images/logo-rss-16.png" alt="Apache Blog logo" /></a>
      </td>

      <!-- Facebook -->
      <td>
        <a href="https://www.facebook.com/ApacheOO" title="Follow us on Facebook" target=_blank>Facebook
        <img src="/images/logo-facebook-16.png" alt="Facebook logo" /></a>
      </td>

      <!-- Facebook Group -->
      <td>
        <a href="https://www.facebook.com/groups/338330086179568/" title="Follow the Facebook Group" target=_blank>Facebook Group
        <img src="/images/logo-facebook-16.png" alt="Facebook logo" /></a>
      </td>

      <!-- Twitter -->
      <td>
        <a href="https://twitter.com/ApacheOO" title="Follow us on Twitter" target=_blank>Twitter
        <img src="/images/logo-twitter-16.png" alt="Twitter logo" /></a>
        <br /><br />
        Hashtag: #apacheoo
      </td>

      <!-- YouTube -->
      <td>
        <a href="https://www.youtube.com/openoffice" title="Follow us on YouTube" target=_blank>YouTube
        <img src="/images/logo-youtube-16.png" alt="YouTube logo" /></a>
      </td>
    </tr>
  </table>

</body>
</html>
