Integrations overhaul and onboarding reboot

by Deariary Official

Integrations UX sweep

  • Added pre-setup overview pages so people can learn before they connect: hero + description, concrete use cases, realistic sample journal (using the actual journal card UI), permissions/scopes, plan notes, and related links. Linked the list cards to these pages instead of jumping straight into OAuth. (overview commit)
  • Redid the integration detail pages layout: moved from a flat stack → card layout → sidebar + panel tabs (Settings / Status & data / Advanced), with spacing/typography cleanup and card wrappers restored where it helps clarity.
  • Unified “Status & data” across integrations with a shared raw source data viewer that hits GET /users/me/journals/:date/sources/:slug and handles 404 (no data) cleanly.
  • Webhook detail got split into Tokens vs. Status & data, with clearer section titles and token create flow (create form above list, auto-switch to the list after creation).
  • Slack got a proper settings page: channel multi-select from the new channels endpoint, updated overview with real scopes and collected data, and a more relatable sample journal. (slack settings)

Multi‑account support

  • Built first-class multi-account/workspace handling: multiple connections per integration type, per-connection sync status, grouping on the list, and a tabbed switcher on detail pages.
  • Hid the switcher when it’s a single-account integration or there’s only one connection; moved “add another” to the right place (detail page).
  • Dropped manual label editing now that the backend populates labels from provider info.
  • Fixed tests for the new two-phase loading (connections list → detail) and adjusted snapshots around the new nav/tabs.

Onboarding reboot

  • Started with a post-registration flow (Connect → Generate → Done), then replaced it with a lighter, no-OAuth-first experience: Setup (locale/timezone) → Format (log/story/adlib with live preview) → Done (CTA to integrations). Keeps momentum without OAuth friction. (onboarding refactor)
  • Tons of small polish: hide header/footer, compact format buttons, localized/realistic samples, native locale labels, timezone select dropdown, friendlier “Free plan / Upgrade anytime” copy, and a staging/local flag to let me revisit /onboarding while debugging.
  • Cleaned up routing/redirects and OAuth callback return so onboarding stays coherent even if the backend doesn’t bounce origin back.

Journals: generation, status, and sharing

  • Aligned pipeline/generation APIs with backend changes: updated status types (incl. pending + error detail), stabilized task ordering on polls, and switched generation status polling to the new date-based endpoint. In a few places, skipped polling entirely and just navigated to the journal detail after triggering generation.
  • Added generatedAt to make regenerations visible in the journal footer.
  • Improved empty state on the journals page to be connection-aware with an instant generation trigger; defaulted format to log.
  • Fixed share pages: resolve locale from generationOptions or browser language, localize metadata/OG tags, and reworked the share link creation UI (inline expiry buttons, clearer separation from existing links, label before expiry buttons).

Plans and polish

  • Brought plan comparison in line with product-spec and trimmed the billing plan card to just the real differentiators (no duplicated rows, simpler LLM rank labels).
  • Replaced scattered inline “saved” messages with a global toast system (auto-dismiss, slide-in).
  • Lots of UI paper cuts: spacing/typography tokens, better sample excerpts (Webhook and Slack), saner list spacing in journal bodies, sidebar sizing alignment, and assorted i18n tidy-ups.

Overall: big UX pass that ties integrations + onboarding together, smooths the first-run path, and reduces friction across status/data visibility and sharing. Feels coherent now.

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