Feed and interaction model#
The shape of the feed, the cards, and how the user moves through them.
Feed shape#
- Vertical scroll, TikTok / Instagram Reels pattern.
- Reverse-chronological from the top — newest email first.
- A single infinite stream. New (unread) emails on top, then already-seen emails below, visually muted as “old.”
- No first-run magic. A user with 12,000 unread emails sees them in reverse-chronological order; the assumption is that they only ever look at the top anyway, so existing inbox state isn’t a problem to solve.
What a card shows (v1)#
- Sender
- Subject
- Received time
That’s it for v1. Richer metadata is an iteration target — see enhancements.md.
Cards should avoid walls of text. Visual design is important and deliberately distinct from a traditional mail list.
Scroll-past behaviour#
Scrolling past an email marks it as read (locally / “seen”) but leaves it in the stream. The feed visibly shrinks because the “new” count drops, but nothing is destroyed.
Users who want more aggressive behaviour (auto-archive on scroll-past) can opt in via settings — not the default, because new users haven’t yet learned to trust the app with their bills and shipping notifications.
The “seen” state is local to the app. The app does not modify Gmail’s unread state on first run or any other time as a side-effect of scrolling. Uninstall the app and the Gmail inbox looks exactly as it did before installation.
Action rail#
A right-side rail of action buttons, always visible on each card (TikTok-style), rather than hidden behind a swipe.
v1 actions (sourced from Gmail’s capabilities):
- Reply
- Forward
- Snooze
- Archive
- Delete
The action set adapts to what the underlying email provider supports. The app is not reimplementing email features — it delegates to the provider.
Notifications#
- Generic “you’ve got mail”-style local notifications for v1.
- Smarter notifications (highlighting perceived importance, surfacing specific content) deferred — see enhancements.md.
- Mechanism: see architecture.md.