MoodMelody transforms your daily emotional journey into a beautiful symphony of self-discovery
๐ฏ Google Gemini - Primary emotion detection with fallback keys for reliability |
๐ง Spotify Integration - Millions of songs at your fingertips |
๐ Interactive Charts - Watch your mood patterns unfold |
๐จ Modern UI - Dark glass-style modals, clean layouts, no-scroll premium popup |
๐ Write Your Thoughts โ ๐ง AI Analyzes Your Mood โ ๐ต Get Perfect Music โ ๐ Track Your Growth
| Feature | What It Does | Why It's Awesome |
|---|---|---|
| ๐ Smart Journaling | Write daily entries with automatic emotion detection | Never wonder about your mood again |
| ๐ต Music Discovery | Get personalized songs based on detected emotions | Discover your new favorite song every day |
| ๐ Growth Analytics | Visualize emotional patterns over time | Watch yourself grow and improve |
| ๐ฅ Streak System | Maintain daily journaling habits | Turn self-care into a fun game |
| ๐ Global Support | 7 languages with localized music | Everyone deserves emotional wellness |
graph TB
A[๐ User Interface] --> B[โ๏ธ Next.js 15 App Router]
B --> C[๐ Supabase Auth]
B --> D[๐ค Google Gemini AI]
B --> E[๐ต Spotify API]
B --> F[๐พ Supabase Database]
C --> G[๐ค Google OAuth]
D --> H[๐ง Emotion Detection]
E --> I[๐ง Music Recommendations]
F --> J[๐ Mood Analytics]
style A fill:#e1f5fe
style B fill:#f3e5f5
style D fill:#fff3e0
style E fill:#e8f5e8
git clone https://github.com/HackStyx/MoodMelody.git
cd MoodMelody(If the app lives in a subfolder such as mood-app, run cd mood-app after cloning.)
npm installCreate a .env.local file in the project root with your API keys:
# Supabase (Auth & Database)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
# AI Emotion Detection (Google Gemini โ primary + optional fallback)
GEMINI_API_KEY=your_gemini_api_key
GEMINI_FALLBACK_API_KEY=your_gemini_fallback_key
# Spotify Music Recommendations
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secretSet up Supabase and run the schema. See DATABASE_SETUP.md for details.
# Apply schema via Supabase SQL Editor or CLI
# Use the SQL in database/schema.sqlnpm run devOpen http://localhost:3000 to see MoodMelody in action!
| Dark | Light |
|---|---|
![]() |
![]() |
Landing page with pricing (Basic free, Premium), Get Started / Get Started Now CTAs, and a premium modal (no-scroll, wide layout) for the Premium experience.
Mood tracking, chat-style journal with AI emotion detection, and music recommendations
Charts, heatmap, and AI-generated insights
Profile and preferences
Dive deep into the technology and intelligence that powers your emotional journey
๐ฏ Reliable emotion analysis
"From 'feeling overwhelmed' to clear emotional insight in milliseconds" |
๐ง Millions of Songs at Your Service
"Discover your new favorite song every single day" |
๐ Your Journey Visualized
"See patterns you never knew existed in your emotional world" |
๐ก๏ธ Enterprise-Grade Protection
"Your most personal thoughts deserve the highest protection" |
| What Others Do | What MoodMelody Does | Why It Matters |
|---|---|---|
| ๐ Basic mood tracking | ๐ง AI-powered emotion analysis | Know exactly how you feel, not just guess |
| ๐ต Generic playlists | ๐ฏ Mood-matched music curation | Every song resonates with your current state |
| ๐ Simple charts | ๐ AI-generated insights | Understand patterns and triggers in your emotions |
| ๐ Basic security | ๐ Enterprise-grade protection | Your personal journey stays completely private |
| Language | Search Terms | Spotify Market | Status |
|---|---|---|---|
| ๐บ๐ธ English | Native | US | โ Active |
| ๐ช๐ธ Spanish | Localized | ES | โ Active |
| ๐ซ๐ท French | Localized | FR | โ Active |
| ๐ฉ๐ช German | Localized | DE | โ Active |
| ๐ฎ๐ณ Hindi | Localized | IN | โ Active |
| ๐จ๐ณ Chinese | Localized | TW | โ Active |
| ๐ฏ๐ต Japanese | Localized | JP | โ Active |
We welcome contributions! Here's how you can help:
- ๐ด Fork the repository
- ๐ฟ Create a feature branch (
git checkout -b feature/amazing-feature) - ๐พ Commit your changes (
git commit -m 'Add amazing feature') - ๐ Push to the branch (
git push origin feature/amazing-feature) - ๐ Open a Pull Request
POST /api/emotion
Content-Type: application/json
{
"text": "I'm feeling really happy today!"
}
Response:
{
"emotion": "joy",
"confidence": 0.95,
"method": "gemini"
}POST /api/spotify/recommendations
Content-Type: application/json
{
"emotion": "joy",
"preferences": ["pop", "happy"],
"language": "en"
}
Response:
{
"tracks": [...],
"searches_performed": 2
}- Create a new Supabase project
- Run the provided schema (
database/schema.sql) - Configure authentication providers (Google OAuth)
- Set up Row Level Security policies
- Gemini: Enable Generative Language API and create API keys at Google AI Studio (use one or two keys for primary/fallback)
- Spotify: Create an app at Spotify Developer Dashboard
- Supabase: Create a project and use the project URL and anon key from Supabase
- ๐ Vercel Analytics: User engagement and behavior tracking
- โก Speed Insights: Performance monitoring and Core Web Vitals
- ๐ Error Tracking: Comprehensive error handling and logging
- ๐ฑ PWA Metrics: Installation and usage statistics
- ๐ Live Demo: mood-melody-app.vercel.app
- ๐ง Email: Contact HackStyx
- ๐ GitHub: Open an Issue
- ๐ฆ Twitter: @hackstyx
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ by HackStyx
MoodMelody - Where emotions meet music ๐ต

