← back to AbramsOS

views/home.ejs

52 lines

<%- include('partials/header', { title: 'Home' }) %>

<section class="hero glass">
  <h1>Your ownership, in one place.</h1>
  <p class="subtle">AbramsOS quietly tracks what you own, what risks apply, and what's worth doing about it.</p>
</section>

<section class="stat-row">
  <div class="stat glass">
    <div class="num"><%= connectorCount %></div>
    <div class="label">Connectors</div>
  </div>
  <div class="stat glass">
    <div class="num"><%= purchaseCount %></div>
    <div class="label">Purchases ingested</div>
  </div>
  <div class="stat glass">
    <div class="num"><%= lastSync ? new Date(lastSync).toLocaleString() : 'never' %></div>
    <div class="label">Last sync</div>
  </div>
  <a class="stat glass" href="/savings" style="text-decoration:none">
    <div class="num"><%= (typeof savingsCount !== 'undefined' ? savingsCount : 0) %><% if (typeof savingsTotal !== 'undefined' && savingsTotal > 0) { %> <span class="subtle" style="font-size:.5em">~$<%= savingsTotal.toFixed(0) %></span><% } %></div>
    <div class="label">Savings ideas →</div>
  </a>
</section>

<% if (connectorCount === 0) { %>
  <section class="cta glass">
    <h2>Connect your inbox to begin</h2>
    <p>AbramsOS reads receipts only — no sending, no scanning your other mail. You can revoke access any time.</p>
    <a class="button primary" href="/auth/google/start">Connect Gmail</a>
  </section>
<% } %>

<% if (recent && recent.length) { %>
  <section class="recent glass">
    <h2>Recent purchases</h2>
    <ul class="recent-list">
      <% recent.forEach(p => { %>
        <li>
          <span class="merchant"><%= p.merchant_name %></span>
          <span class="amount"><%= p.total_amount ? (p.currency || 'USD') + ' ' + Number(p.total_amount).toFixed(2) : '—' %></span>
          <span class="date"><%= new Date(p.purchase_date).toLocaleDateString() %></span>
        </li>
      <% }) %>
    </ul>
    <a class="link" href="/purchases">View all →</a>
  </section>
<% } %>

<%- include('partials/footer') %>