<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Ambient | Local Macs, Coordinated at Scale</title>
    <meta
      name="description"
      content="Ambient turns idle Apple Silicon machines into a coordinated transcription fleet with user-controlled preferences and a hosted coordinator."
    >
    <link rel="stylesheet" href="/static/styles.css">
  </head>
  <body>
    <div class="shell">
      <header class="nav">
        <a class="brand" href="/">
          <span class="brand-mark">HC</span>
          <span>Ambient</span>
        </a>
        <nav class="nav-links">
          <a href="/download">Download</a>
          <a href="/earn">Earn</a>
          <a href="/trust">Why it's safe</a>
          <a href="/manager/login">Manager</a>
        </nav>
      </header>

      <main>
        <section class="hero">
          <article class="hero-copy">
            <div class="eyebrow">Distributed transcription for Apple Silicon</div>
            <h1>Run local compute on a user's Mac. Coordinate everything from one control plane.</h1>
            <p class="lead">
              Ambient keeps transcription work close to the user's hardware while the hosted coordinator handles
              dispatch, retries, job tracking, and fleet visibility. The local worker obeys user preferences. The
              coordinator decides what should run and when.
            </p>
            <div class="hero-actions">
              <a class="button" href="/download">Download for Mac</a>
              <a class="ghost-button" href="/manager/login">Open the manager</a>
            </div>
            <div class="tag-row">
              <span class="tag">User-controlled idle rules</span>
              <span class="tag">Hosted job dispatch</span>
              <span class="tag">Passkey manager access</span>
            </div>
          </article>

          <aside class="hero-panel">
            <div class="panel-kicker">Why this shape works</div>
            <div class="metric">
              <strong>Local</strong>
              <span>Audio runs on the user's machine, with preferences for power, idle time, and thermals.</span>
            </div>
            <div class="metric">
              <strong>Hosted</strong>
              <span>The coordinator stays public, routable, and observable on Fly.io without shipping a second backend.</span>
            </div>
            <div class="metric">
              <strong>Auditable</strong>
              <span>Jobs, retries, heartbeats, worker state, and admin access all live in one system boundary.</span>
            </div>
          </aside>
        </section>

        <section class="section">
          <div class="section-header">
            <div>
              <div class="eyebrow">System</div>
              <h2 class="section-title">One product, two surfaces</h2>
            </div>
            <p class="section-note">
              The local app and central coordinator stay in one repo because they are one protocol with one control plane.
            </p>
          </div>
          <div class="grid grid-3">
            <article class="card">
              <h3>Local worker app</h3>
              <p>
                The worker runs on a Mac, pulls jobs outbound, and respects user preferences before doing any useful work.
              </p>
            </article>
            <article class="card">
              <h3>Coordinator API</h3>
              <p>
                Jobs are queued, leased, monitored, and retried from one hosted service instead of having peers coordinate
                directly.
              </p>
            </article>
            <article class="card">
              <h3>Hosted manager</h3>
              <p>
                Fleet and partner operations live behind a manager UI protected with passkeys instead of a shared bootstrap secret.
              </p>
            </article>
          </div>
        </section>

        <section class="section">
          <div class="section-header">
            <div>
              <div class="eyebrow">Flow</div>
              <h2 class="section-title">Dispatch without losing local control</h2>
            </div>
          </div>
          <div class="grid grid-2">
            <article class="panel">
              <h3>What the user controls</h3>
              <ul class="list">
                <li>When work is allowed to run.</li>
                <li>Whether AC power is required.</li>
                <li>How idle time and thermal checks should behave.</li>
                <li>Which model backend the local worker should prefer.</li>
              </ul>
            </article>
            <article class="panel">
              <h3>What the coordinator controls</h3>
              <ul class="list">
                <li>Job intake and queue ordering.</li>
                <li>Shard planning, retries, and stale-work reaping.</li>
                <li>Partner tracking, billing, and fleet visibility.</li>
                <li>Hosted manager access and operational review.</li>
              </ul>
            </article>
          </div>
        </section>

        <section class="section">
          <div class="callout">
            <div class="eyebrow">Current posture</div>
            <h2 class="section-title">The local worker exists now. The public site and passkey manager now live on the same Fly deployment.</h2>
            <p class="lead">
              This first version gives you a clean public story for users plus a secure manager entry point for operators.
              Next steps are tightening worker enrollment and moving machine secrets out of local YAML.
            </p>
          </div>
        </section>
      </main>

      <footer class="footer">
        Ambient keeps the control plane hosted and the heavy lifting local.
        <a href="/terms">Terms</a> · <a href="/privacy">Privacy</a>
      </footer>
    </div>
  </body>
</html>
