summaryrefslogblamecommitdiffstats
path: root/index.html
blob: e092318c06525b52e630c1e654c1e0337c7ea180 (plain) (tree)











































































































                                                                                                                        
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Macaw IM</title>
  <link rel="icon" href="/assets/icon.png" />
  <link rel="stylesheet" href="/style.css" />
</head>

<body>
  <div>
    <header>
      <nav>
        <div>
          <a href="https://llama.blos.sm/share/4W3SPj27jbtAkogpxFHFpptL7XttFkvP8ht6IloZ/auth?view=kanban">Roadmap</a>
        </div>
        <div id="logo">
          <img src="/assets/icon.png" id="icon">
          <h1>Macaw Instant Messenger</h1>
        </div>
      </nav>

      <br>

      <div>
        <a class="button" href="https://bunny.garden/macaw">Source Code</a>
      </div>

      <p>Macaw is an in-development retro-modern XMPP chat client that takes from the best of all the eras of instant
        messaging. Chat apps can be fast, featureful and fun.</p>

      <div class="handmade-with">
        <div>handmade with <span class="monospace">&lt;3</span> at </div><img id="lovely" src="/assets/lovely.svg">
      </div>
    </header>

    <main>
      <section id="features">
        <div class="features">
          <div class="column">
            <div class="feature">
              <h3>Private</h3>
              <p>End-to-end encryption is supported and enabled by default for direct messages and private group chats
                via
                OMEMO
                2, which uses the Signal Protocol for perfect forward secrecy.</p>
            </div>
            <div class="feature">
              <h3>Federated</h3>
              <p>No vendor lock-in. Communicate with all your friends on different servers. You have the ability to host
                all
                your own data yourself if you wish to.</p>
            </div>
          </div>
          <div class="column">
            <div class="feature">
              <h3>Libre</h3>
              <p>Fully open source, allowing anyone to read and modify the source code to ensure security and add
                features.
              </p>
            </div>
            <div class="feature">
              <h3>Open Protocol</h3>
              <p>Uses the XMPP (Jabber) protocol, which is mature and battle-tested, but still open and easily
                extensible
                allowing for the implementation of modern features.</p>
            </div>
          </div>
          <div class="column">
            <div class="feature">
              <h3>Superfast</h3>
              <p>A modern codebase built from the ground up in Rust, with a focus on parallelisation. The Iced library
                enables
                lightweight and customisable GPU-accelerated GUI. No webviews here.</p>
            </div>
            <div class="feature">
              <h3>Resilient</h3>
              <p>Almost all features can be used while offline, and the type-safety of Rust ensures both stability from
                crashes
                through robust error/failstate handling, and security through memory safety.</p>
            </div>
          </div>
        </div>
        <div class="at-decoration">@</div>
      </section>

      <h2>XMPP Compliance</h2>
      <ul>
        <li>RFC 6120: XMPP Core</li>
        <li>RFC 6121: XMPP IM</li>
        <li>RFC 7590: Use of TLS in XMPP</li>
        <li>XEP-0030: Service Discovery</li>
        <li>XEP-0115: Entity Capabilities</li>
        <li>XEP-0163: Personal Eventing Protocol</li>
        <li>XEP-0368: SRV records for XMPP over TLS</li>
        <li>XEP-0203: Delayed Delivery</li>
        <li>XEP-0199: XMPP Ping</li>
        <li>XEP-0084: User Avatar</li>
        <li>XEP-0172: User Nickname</li>
      </ul>
    </main>
  </div>
</body>

</html>