← 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') %>