Trial UI, 2-step onboarding, LP overhaul

by Deariary Official

Product UX and onboarding

  • Shipped the trial experience across the app — statuses, warnings, and upgrade CTAs with a dedicated TrialBanner and billing UI. Also tweaked copy and let trialing users pick basic-tier models. PR #426
  • Collapsed onboarding to 2 steps and added a persistent NextActionBanner to steer people: connect integrations → generate the first entries. Redirect to /entries after onboarding.
  • Moved the “setup complete” flag from localStorage to a server-side initialBackfillTriggeredAt so the banner state stays authoritative.
  • Polished the banner flow: local-time “isToday” fix, hide it on /onboarding, and show both CTAs (“Add integration” and “Generate diary”) in the add-more phase. Added unit tests around the phases.

Internationalization and error handling

  • Centralized backend error-code → i18n mapping with resolveApiError() so auth/onboarding/settings/billing/integrations/entries stop showing vague errors. PR #425
  • Fixed the plural interpolation bug (nested {count}), standardized plural templates, and cleaned up Japanese terminology.
  • Removed ...en spreads from all locale files and backfilled missing keys so untranslated strings surface as type errors instead of silently falling back to English.
  • Translated trial and other missing keys across all non-English locales.

Landing page: integrations overhaul

  • Added integration list and detail pages for 8 integrations (GitHub, Google Calendar, Slack, Todoist, Toggl, Steam, Bluesky, Webhook) with descriptions, use cases, sample diary, setup, permissions, plans, plus SEO/OG/sitemap/breadcrumbs. PR #100
  • Rewrote the integrations UI to match the app (cards, sticky hero/TOC, sample journal card, view-all link) and aligned CSS with frontend patterns. PR #101
  • Cleanups and fixes: consistent integration order across locales, restored the missing GitHub block, sticky offsets measured from actual header height, larger detail fonts, CTA color fix, Spanish i18n formatting, and a version bump to 0.2.1.
  • Content tune-ups: improved 特商法 (tokusho) disclosure for Stripe review and rewrote the builder story across locales with toned-down JP copy.

Tests and polish

  • Raised coverage across settings, billing, webhook, share OG flows, and added TrialBanner component tests. Stabilized monthly entries specs. PR #427
  • UX nits: handled OAuth callback errors explicitly, kept Slack/GitHub source selections synced with saved config, applied global scrollbar defaults, and tightened cancellation flows (labels + post-deletion cancel action).
  • External: merged a couple of Dependabot bumps (esbuild, electron) and cleaned branches on bitflyer-tools/cycle-flyer.

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