Skip to content

Latest commit

 

History

History
224 lines (183 loc) · 9.36 KB

File metadata and controls

224 lines (183 loc) · 9.36 KB

v0.4.0 Handover Document

Date: February 2026 Last commit: a8184d0 - feat(cloud): add feedback storage, contextual help panels, and blog


What Was Done

Cloud Infrastructure (commit 54a2dd5)

Previously implemented core cloud platform:

  • Cloud mode detection (TADA_CLOUD_MODE env var or Stripe keys)
  • Database schema: subscription fields, email_verification_tokens, subscription_events
  • Usage limits: 1-year rolling window for free tier
  • Email verification flow
  • Stripe integration (checkout, portal, webhooks)
  • Account page (/account)
  • useSubscription composable
  • ArchiveNotice component

Data Deletion (GDPR Compliance)

Completed:

  • DELETE /api/account - Deletes user and all data
    • Cancels any active Stripe subscriptions
    • Invalidates all user sessions
    • Deletes user record (cascades to all related data via foreign keys)
    • Requires confirmation phrase "DELETE" in request body
  • /account - Added "Danger Zone" section
    • Delete account button with modal confirmation dialog
    • User must type "DELETE" to confirm
    • Works for both cloud and self-hosted modes

Feedback Storage (just completed)

  • feedback table - New database table for storing user feedback
    • Stores type (bug/feedback/question), description, system info
    • Status tracking: new → reviewed → in_progress → resolved → closed
    • Internal notes field for admin use
  • 0017_feedback.sql - Migration for feedback table
  • /api/feedback - Updated to store in database instead of logging

Contextual Help Panels (just completed)

  • ContextualHelpPanel.vue - Slide-in help panel
    • Page-specific help content for: Timeline, Sessions, Ta-Da!, Moments, Tally, Rhythms, Settings
    • Philosophy-focused content answering "why" not just "how"
    • Links to full FAQ and feedback form
    • Keyboard shortcut (Escape to close)
  • default.vue - Added ? icon in header
    • Positioned next to settings icon
    • Opens contextual help panel on click

Newsletter Signup (just completed)

Data Processing Agreement (just completed)

  • /dpa - GDPR-compliant DPA page
    • Processing scope and purpose
    • Categories of data
    • Security measures
    • Sub-processors list
    • Data breach notification
    • International transfers
  • auth.global.ts - Added /dpa to public paths
  • privacy.vue - Added DPA link in footer

Getting Started Card

  • GettingStartedCard.vue - First-week guidance card
    • Appears on home page for new users
    • Warm, friendly tone with quick-start links
    • Links to Sessions, Ta-Da!, Moments, Rhythms
    • Emphasizes "count up" philosophy
    • Dismissible, respects user preference
  • useOnboarding.ts - Added shouldShowFirstWeekCard computed
  • index.vue - Added GettingStartedCard to home page

Blog Foundation

Quick Wins (Help & Onboarding)

Previously completed:

  • HelpLink.vue - Reusable contextual help link component
    • Supports search query param to pre-filter help page
    • Added to: Sessions, Rhythms, Settings pages
  • /help - Now supports ?q= query param for pre-filtering
  • SettingsHint.vue - Settings page tour
    • Shows once on first visit to Settings
    • Gentle banner explaining key sections
    • Dismissible, respects user preference
  • useOnboarding.ts - Added settingsHintDismissed state

Cloud Platform UI (commit cc7aae0)

Previously completed:

Legal & Compliance:

Marketing:

User Support:

  • /help - Searchable FAQ with 6 categories
  • /feedback - Bug report with system info consent
  • /api/feedback - Stores feedback in database
  • /blog - Philosophy blog with 3 articles

Onboarding:

Infrastructure:


What Remains for v0.4.0

See design/roadmap.md for full details.

Onboarding ✅

  • First week "getting started" card on home (DONE)
  • Settings tour when visiting Settings page (DONE)

Help System ✅

  • Direct "Need help?" links from relevant pages (DONE)
  • Contextual ? icon in header with slide-in panels (DONE)

Feedback ✅

  • Screenshot/recording attachment option
  • Database table for storing feedback (DONE)

Legal ✅

  • Data processing agreements page (DONE)
  • Data deletion workflow in account settings (DONE)

Marketing ✅

  • Blog foundation with initial content (DONE - 3 articles)
  • Email newsletter signup (DONE)

Deployment (can defer)

  • CapRover captain-definition
  • Automated backup scripts

Key Files to Know

Purpose File
Cloud mode detection app/server/utils/cloudMode.ts
Usage limits app/server/utils/usageLimits.ts
Subscription state app/composables/useSubscription.ts
Stripe integration app/server/services/stripe.ts
Onboarding state app/composables/useOnboarding.ts
Getting started card app/components/onboarding/GettingStartedCard.vue
Public page list app/middleware/auth.global.ts
Contextual help app/components/ContextualHelpPanel.vue
Feedback storage app/server/db/schema.ts (feedback table)
Newsletter signup app/components/NewsletterSignup.vue
Newsletter API app/server/api/newsletter/subscribe.post.ts
Data Processing Agreement app/pages/dpa.vue
Blog pages app/pages/blog/*.vue
Design docs design/commercial.md, design/roadmap.md

Design Philosophy Reminders

Ta-Da! is gentle and celebratory:

  • Count up, not down — celebrate what you did
  • Identity over streaks — "you're a meditator" not "don't break your streak"
  • Graceful rhythms — missing a day isn't failure
  • Onboarding like a friend showing you around, not a tutorial
  • Help that answers "why" not just "how"


Testing Notes

  • Cloud mode: Set TADA_CLOUD_MODE=true or configure STRIPE_SECRET_KEY
  • Self-hosted mode: Leave both unset (default)
  • Health check: curl localhost:3000/api/health
  • Landing page: Log out and visit /

Suggested Next Steps

  1. Quick wins: Add "Need help?" links to pages, Settings tour DONE
  2. Data deletion: Add delete account button to /account page DONE
  3. Feedback storage: Create feedback table in schema, update API DONE
  4. Blog: Create /blog with 1-2 philosophy articles DONE
  5. Contextual help panels: ? icon in header with slide-in help panels DONE
  6. First week card: Add "getting started" card on home for new users DONE
  7. Email newsletter: Add newsletter signup to blog/landing DONE
  8. Data Processing Agreement: Add /dpa page for GDPR compliance DONE
  9. Deployment: CapRover captain-definition and backup scripts (can defer to actual deployment)

Handover prepared by Claude Opus 4.5