← All templates

Mental Health Journal

Health & Fitness · React + Node (Express) · 18 @molecule/* packages

Daylio-like mental health journal with mood tracking, journal entries, pattern analysis, and wellness insights — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • notifications
  • encryption
  • reporting
  • ai-insights
  • subscriptions

Screens (14)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Home /home (signed in)
  • Journal /journal (signed in)
  • EntryComposer /journal/new (signed in)
  • EntryDetail /journal/:id (signed in)
  • Insights /insights (signed in)
  • Prompts /prompts (signed in)
  • Settings /settings (signed in)
  • Calendar /calendar (signed in)
  • Profile /profile (signed in)

Data model (8 tables)

  • activities — id, user_id, slug, label, icon, category, sort_order, is_active, …
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • goal_progress — id, goal_id, user_id, period_starts_at, value, hit_target, computed_at, created_at
  • journal_entries — id, user_id, written_at, title, body, body_encrypted, body_iv, mood_id, …
  • mood_entries — id, user_id, recorded_at, score, energy, anxiety, label, activities, …
  • notifications — id, user_id, kind, payload, read_at, created_at
  • prompts — id, slug, category, body_template, is_active, locale, created_at, updatedAt
  • wellness_goals — id, user_id, title, description, category, kind, target_value, period, …

API (1 handlers)

  • journal api/src/handlers/journal.ts

Subscription tiers

free / pro / team — gated by: maxActivities, maxEntries, maxGoals, maxInsights, maxMood, advancedFeatures, canExport, retentionDays

Built from 18 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • ENCRYPTION_KEY AES encryption key for journal data
  • VAPID_PUBLIC_KEY VAPID public key for push notifications
  • VAPID_PRIVATE_KEY VAPID private key for push notifications

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing