← All templates

Meditation App

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

Headspace-like meditation app with guided sessions, timer, streaks, categories, and audio playback — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • search
  • notifications
  • charts
  • audio
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Home /home (signed in)
  • Library /library (signed in)
  • SessionPlayer /sessions/:id (signed in)
  • Courses /courses (signed in)
  • Journal /journal (signed in)
  • Stats /stats (signed in)
  • Settings /settings (signed in)
  • CourseDetail /courses/:id (signed in)
  • Profile /profile (signed in)
  • Notifications /notifications (signed in)
  • Search /search (signed in)

Data model (11 tables)

  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • journal_entries — id, user_id, session_id, title, body, mood, tags, written_at, …
  • meditation_categories — id, slug, label, description, hero_image_key, display_order, is_active, created_at, …
  • meditation_course_days — id, course_id, day_number, session_id, title, prep_text, created_at
  • meditation_courses — id, slug, title, description, day_count, hero_image_key, is_premium, is_published, …
  • meditation_history — id, user_id, session_id, course_id, started_at, completed_at, duration_seconds, reflection_id, …
  • meditation_sessions — id, category_id, slug, title, description, duration_seconds, difficulty, instructor_name, …
  • notifications — id, user_id, kind, payload, read_at, created_at
  • user_favorites — id, user_id, session_id, course_id, created_at
  • user_preferences — id, user_id, voice, default_duration_minutes, reminder_enabled, reminder_time, autoplay_next, weekly_goal_minutes, …
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (9 handlers)

  • categories api/src/handlers/categories.ts
  • courses api/src/handlers/courses.ts
  • favorites api/src/handlers/favorites.ts
  • history api/src/handlers/history.ts
  • journal api/src/handlers/journal.ts
  • notifications api/src/handlers/notifications.ts
  • preferences api/src/handlers/preferences.ts
  • sessions api/src/handlers/sessions.ts
  • stats api/src/handlers/stats.ts

Subscription tiers

free / pro / team — gated by: maxCategories, maxHistory, maxSessions, maxStats, advancedFeatures, canExport, retentionDays

Built from 17 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • MEILISEARCH_API_KEY Meilisearch API key
  • VAPID_PUBLIC_KEY VAPID public key for push notifications
  • VAPID_PRIVATE_KEY VAPID private key for push notifications
  • S3_BUCKET S3 bucket for audio files
  • S3_ACCESS_KEY_ID S3 access key ID
  • S3_SECRET_ACCESS_KEY S3 secret access key

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