{{ define "main" }}

<section class="hero">
  <div class="container">
    <h1 class="hero-headline">
      Structured&nbsp;data,<br>
      <em>served simply.</em>
    </h1>
    <p class="hero-sub">
      Tidy Index delivers clean, well-organized datasets through a single API
      designed for humans, machines, and LLM agents alike.
    </p>
    <div class="hero-cta">
      <a href="{{ partial "dashboard-url.html" . }}" class="btn btn-primary">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <circle cx="7.5" cy="15.5" r="5.5"/>
          <path d="m11.5 11.5 9.5-9.5"/>
          <path d="m17 5 3 3"/>
          <path d="m14 8 3 3"/>
        </svg>
        Get an API Key
      </a>
      <a href="#demo" class="btn-link">See a record <span aria-hidden="true">&darr;</span></a>
    </div>

    <p class="cta-agents">
      <span class="cta-agents-label">for agents</span>
      <a href="{{ "llms.txt" | relURL }}"><code>GET /llms.txt</code> &rarr;</a>
      <span class="cta-agents-note">a machine-readable invitation. No form, no salesperson.</span>
    </p>
  </div>
</section>

<section id="demo" class="section">
  <div class="container">
    <p class="section-marker">§ 01 &nbsp;&middot;&nbsp; one dataset, three shapes</p>
    <h2 class="section-headline">The same data, in whatever shape your job needs.</h2>
    <p class="section-body">
      Below is the <code>irs-990</code> dataset &mdash; the annual return
      every U.S. nonprofit files with the IRS, normally distributed as a
      sprawling PDF or wall of e-file XML. Tidy Index serves it three ways:
      a single record for your API, a streaming bulk export for your data
      team, or a token-efficient summary your agents can drop straight into
      context.
    </p>

    <div class="record">
      <header class="record-head">
        <span class="record-label">Dataset</span>
        <code class="record-id">irs-990</code>
        <span class="record-meta">1.5M filings &middot; updated daily</span>
      </header>

      <div class="record-row">
        <div class="record-tag">
          <span class="tag-name">record</span>
          <span class="tag-mime">application/json</span>
          <span class="tag-note">single filing, fully normalized</span>
        </div>
<pre class="record-body"><code><span class="tk-p">{</span>
  <span class="tk-k">"ein"</span><span class="tk-p">:</span> <span class="tk-s">"20-0049703"</span><span class="tk-p">,</span>
  <span class="tk-k">"name"</span><span class="tk-p">:</span> <span class="tk-s">"Wikimedia Foundation, Inc."</span><span class="tk-p">,</span>
  <span class="tk-k">"fiscal_year"</span><span class="tk-p">:</span> <span class="tk-n">2023</span><span class="tk-p">,</span>
  <span class="tk-k">"revenue_usd"</span><span class="tk-p">:</span> <span class="tk-n">180249000</span><span class="tk-p">,</span>
  <span class="tk-k">"expenses_usd"</span><span class="tk-p">:</span> <span class="tk-n">169106000</span><span class="tk-p">,</span>
  <span class="tk-k">"net_assets_usd"</span><span class="tk-p">:</span> <span class="tk-n">254971000</span><span class="tk-p">,</span>
  <span class="tk-k">"source"</span><span class="tk-p">:</span> <span class="tk-s">"https://apps.irs.gov/app/eos/details/?ein=200049703"</span>
<span class="tk-p">}</span></code></pre>
      </div>

      <div class="record-row">
        <div class="record-tag">
          <span class="tag-name">bulk</span>
          <span class="tag-mime">application/x-ndjson</span>
          <span class="tag-note">streaming, one record per line</span>
        </div>
<pre class="record-body"><code><span class="tk-p">{</span><span class="tk-k">"ein"</span><span class="tk-p">:</span><span class="tk-s">"20-0049703"</span><span class="tk-p">,</span><span class="tk-k">"name"</span><span class="tk-p">:</span><span class="tk-s">"Wikimedia Foundation, Inc."</span><span class="tk-p">,</span><span class="tk-k">"revenue_usd"</span><span class="tk-p">:</span><span class="tk-n">180249000</span><span class="tk-p">}</span>
<span class="tk-p">{</span><span class="tk-k">"ein"</span><span class="tk-p">:</span><span class="tk-s">"20-0097189"</span><span class="tk-p">,</span><span class="tk-k">"name"</span><span class="tk-p">:</span><span class="tk-s">"Mozilla Foundation"</span><span class="tk-p">,</span><span class="tk-k">"revenue_usd"</span><span class="tk-p">:</span><span class="tk-n">34019000</span><span class="tk-p">}</span>
<span class="tk-p">{</span><span class="tk-k">"ein"</span><span class="tk-p">:</span><span class="tk-s">"26-1544963"</span><span class="tk-p">,</span><span class="tk-k">"name"</span><span class="tk-p">:</span><span class="tk-s">"Khan Academy, Inc."</span><span class="tk-p">,</span><span class="tk-k">"revenue_usd"</span><span class="tk-p">:</span><span class="tk-n">85436000</span><span class="tk-p">}</span>
<span class="tk-c">&hellip;</span></code></pre>
      </div>

      <div class="record-row">
        <div class="record-tag">
          <span class="tag-name">summary</span>
          <span class="tag-mime">text/plain</span>
          <span class="tag-note">token-efficient, agent-ready</span>
        </div>
<pre class="record-body"><code>Wikimedia Foundation, Inc. (EIN 20-0049703) reported
$180.25M in revenue against $169.11M in expenses on
its 2023 Form 990, ending the year with $254.97M in
net assets.

Source: https://apps.irs.gov/app/eos/details/?ein=200049703</code></pre>
      </div>
    </div>
  </div>
</section>

<section class="section section-soft">
  <div class="container">
    <p class="section-marker">§ 02 &nbsp;&middot;&nbsp; what it is</p>
    <h2 class="section-headline">Open data and licensed data, kept tidy.</h2>
    <p class="section-body">
      Some of what we serve comes from the open web. The rest is licensed
      from publishers, data vendors, and partners who&rsquo;ve trusted us with
      their private feeds. All of it lives behind the same API, with the same
      stable schemas, the same stable IDs, and the same freshness guarantees
      &mdash; and one key gets you every record in every shape your tools
      (or your agents) prefer.
    </p>
  </div>
</section>

<section class="section section-coverage">
  <div class="container container-wide">
    <p class="section-marker">§ 03 &nbsp;&middot;&nbsp; what we cover</p>
    <h2 class="section-headline">The index, abridged.</h2>
    <p class="section-body">
      A small slice of what&rsquo;s already in the catalog.
    </p>

    <div class="catalog">
      {{ range $.Site.Data.catalog.categories }}
      <div class="catalog-col">
        <span class="catalog-cat">{{ .name }}</span>
        <div class="catalog-window">
          <ul class="catalog-list">
            {{ range .items }}<li>{{ . }}</li>
            {{ end }}{{ range .items }}<li aria-hidden="true">{{ . }}</li>
            {{ end }}
          </ul>
        </div>
      </div>
      {{ end }}
    </div>

    <p class="catalog-more"><strong>100+ datasets</strong> &mdash; and the next one we add is whichever one you ask for.</p>
  </div>
</section>

<section class="section section-cta">
  <div class="container">
    <div class="cta-block">
      <div class="cta-text">
        <p class="section-marker">§ 04 &nbsp;&middot;&nbsp; start</p>
        <h2 class="section-headline">Ready when you are.</h2>
      </div>
      <a href="{{ partial "dashboard-url.html" . }}" class="btn btn-primary btn-lg">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <circle cx="7.5" cy="15.5" r="5.5"/>
          <path d="m11.5 11.5 9.5-9.5"/>
          <path d="m17 5 3 3"/>
          <path d="m14 8 3 3"/>
        </svg>
        API Key
      </a>
    </div>
  </div>
</section>

{{ end }}
