Shipped API keys, export history, LP overhaul

by Deariary Official

Core product updates (frontend)

  • Added Public API key management in Settings (create/list/revoke with scopes). Gated behind Advanced plan and split the UI into clean list/create sections. Linked PR: #333.
  • Export flow now server-tracked: pulls full history from GET /users/me/exports, resumes polling for pending items, shows visible download link + copy button, and displays expiry correctly. Also persists state across navigation.
  • First-time generation switched to backfill endpoint so newbies get the last 7 days instead of just yesterday. Linked PR: #341.
  • Feedback UX: thumbs-up can include an optional comment, and the form copy now matches the rating. Also removed the misleading lastSyncAt display — normal connections just show “Connected.”

App UI/UX polish

  • Replaced emoji integration icons with SVGs (Simple Icons + currentColor for dark mode), tuned default icon sizes, and fixed the webhook icon with an original SVG.
  • Redid integration “About” pages with a sticky sidebar + section navigation and cleaned up visual hierarchy (ditched heavy card wrappers, restored clear section titles).
  • Tweaked layouts: sticky hero/sidebar spacing, removed extra CTAs, and matched section styles to the rest of the app.

Tests, coverage, and tooling

  • Massive test sweep: moved all specs into a dedicated specs/ tree, added snapshot assertions, and broadened feature/unit coverage across pages, hooks, and lib. Coverage jumped to 95.94% (1010 tests, 0 failures).
  • Marked unused-but-parked sidebar components with v8 ignore to keep coverage honest and fixed a stray require() lint error.
  • Pinned ESLint back to v9 for Next config compatibility to unbreak CI.

Landing page revamp (lp)

  • Big pass on structure and storytelling: added browser-frame product mockups and a Sample Journals section (Log/Story/Ad-lib) to show the experience, not just claims. Linked PR: #64.
  • Motion and feel: scroll-triggered reveals, parallax touches, micro-interactions, hover states — all with reduced-motion fallbacks.
  • Visual rhythm overhaul: generous spacing tokens, section “cards” with shadows, clear seams between sections, and full-bleed hero/footer where it counts. Fixed overflow quirks.
  • Iterated on hero (gradients, contrast), fonts (Crimson/Klee One; cleaned up Latin/CJK pairing), and lots of copy (EN/JA) — pricing aligned with docs, “journal → diary” wording, and sample content made broadly relatable.
  • Analytics/legal: added anonymous analytics following the frontend pattern and corrected the legal pages to reflect it; centralized env handling for cleaner config.

Net-net: shipped a stack of UX improvements, real features users touch (API keys, exports, first-time backfill), rock-solid tests, and a livelier LP that finally looks and reads like the product.

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