Steam setup, plan limits UX, and summaries

by Deariary Official

Plan limits & billing UX

  • Implemented the integration usage display and upgrade prompts (integration limits + gating). Shows counts, locks new connections at limit, and warns on downgrade when over.
  • Untangled the “unlimited” plan edge cases: stop nullish-coalescing Advanced’s null into free tier, derive limits from a PLAN_INTEGRATION_LIMITS map keyed by slug, and use explicit key checks so null stays null (unlimited). Feels much safer now.
  • Billing routing is saner: upgrade links and Stripe return land on "/settings#billing"; tabs stay in sync via useSyncExternalStore instead of setting state in an effect.
  • Polished the UI: usage bar is yellow at-limit and red over-limit; locked integration cards show a neutral “Details” link (upgrade prompt lives on the about page); the about page reuses the same usage indicator with a disabled Connect button and an inline hint.
  • Rewrote upgrade copy to emphasize the benefit (“richer journals”) instead of dry limit-speak.

Steam integration

  • Added full Steam integration pages: settings, sync status, disconnect, and an about/overview with i18n and icons (Steam settings/about).
  • Cleaned up the samples and descriptions to match what the Steam Web API actually returns (no invented gameplay details), enriched achievements in the sample, and removed the bogus “reconnect” button since Steam uses server_key auth.

Weekly/Monthly summaries

  • Built the weekly summary detail page and cards on the monthly view, with API client types aligned to backend and email click-through support (weekly detail + cards). Requires backend#453.
  • Added sidebar sections and list pages for weekly/monthly summaries (with pagination), plus tests for the list pages.
  • Gated the new sidebar sections until the backend is ready so the UI doesn’t half-ship.

Onboarding & emails

  • Added a marketing email opt-in checkbox in the onboarding flow, wired to POST /users/me/settings/notifications/marketing-email-consent; then fixed it to always send the consent value and aligned the wording with the register page.
  • Dropped a new brand wordmark PNG into the email templates in the LP repo so the backend can embed it cleanly.

Share

Check out my diary entry on deariary #deariary #diary

Your life, automatically written.

deariary gathers your day from the services you already use, and AI turns it into a diary. No writing required — just a daily record you can look back on.

Turn your passing days into your own diary.

Try it free