Inspiration
As a father of two, juggling two jobs and regularly clocking around 70 hours a week, seven days a week, I faced a common dilemma when the Bolt Hackathon was announced: Can someone like me, with barely any spare time, still build something truly meaningful?
My initial inspiration stemmed from researching market gaps and my love for music. After some brainstorming sessions, I envisioned a quick integration: music recommendations for mood improvement. This idea, born from a desire for efficiency and impact, resonated deeply.
The answer became MoodifyMe, an AI-powered app born from a simple yet urgent question: Can you feel better in just 30 seconds?
My passion for self-development and mental health often led to supporting struggling passengers in my taxi. Many would express deep gratitude just for a listening ear, some even suggesting I become a motivational speaker. This app became my way of scaling that impact, making support accessible to millions globally.
My initial exploration focused on music recommendations. Then, late one night, a new question hit me: "Could an LLM recommend mood improvements based on how someone feels… or even where they live? I typed my postcode into LLM with a draft prompt and ..."
It turned out, yes, it absolutely could. That discovery sparked an immediate rush of energy. As I started developing, the idea for MoodifyMe grew on me, and I realised its deeper potential. I stayed up, planning. Inspired by creators like Greg Isenberg and Starter Story, I fully embraced the mindset: "Don’t wait until you’re ready." I certainly wasn't, but I started anyway. This ethos was particularly relevant at the hackathon's submission phase when asked if I’d continue the project. My initial "maybe" has now solidified into a resounding "yes" - I am committed to building MoodifyMe into a successful application.
What it does
MoodifyMe is an AI-powered mood improvement app that delivers personalized support in under 30 seconds. Users simply share their current emotion, intensity, available time, and (optionally) their location and mobility. Based on this input, the application leverages an AI model to generate personalised recommendations. They receive targeted music, activities, and suggestions, each backed by 85%+ success rates from real user feedback. Unlike generic wellness apps, MoodifyMe is time-aware, community-validated, and focused on what actually works, fast.
Here’s what MoodifyMe can do today, as built during the hackathon:
🔐 Authentication & User Management
- User Sign Up / Login
- Password Reset via Email
- Authenticated user flow with session persistence
🧠 Mood Input & Assessment
- Age Group Selector
- Emotion Picker
- Intensity Slider (1–10)
- Time Available Input (e.g., “5 minutes”)
- Movement Capability (Yes/No)
- Location Input (Postcode for local suggestions)
🤖 AI-Powered Recommendations
- Gemini 1.5 Pro-generated structured XML recommendations for:
- Music (mood + age-appropriate)
- Activities (scientifically validated)
- Local Suggestions (postcode-based)
- Explanations (age-specific psychology behind the suggestions)
- Robust XML Parsing with graceful fallback to free text if needed
- Feedback collection for success tracking on recommendations
🎵 Music & Media Integration
- Spotify 30s music previews
- "Play on Spotify" direct linking
- YouTube fallback videos for full songs
- Display of track metadata + album covers
🧠 Community Intelligence
- Anonymous session tracking
- Only successful, anonymous recommendations are displayed to the community (where user feedback is positive)
- Filtered and paginated community recommendation feed for users to browse proven solutions (server-side for performance and scalability)
- No personally identifiable data is stored or shared
💳 Subscriptions & Billing
- Stripe integration for Essential (£5.99/month) and Unlimited (£18.99/month) plans
- Webhook handling for seamless plan upgrades/cancellations
- Monthly usage cap for free users (5 recommendations)
- Clear upgrade flow + usage notifications
📖 Session History
- View past sessions
- Ability to expand sessions to review full recommendations
- Retrospective feedback (was it helpful?)
- Filtered and paginated feed for users to browse history solutions (server-side for performance and scalability)
🌈 UX & Accessibility
- Mobile-first responsive design
- Therapeutic color palette and soft gradients
- Neumorphic UI elements
- One-decision-per-screen approach to reduce cognitive load
- Large touch targets and smooth animations for a calming experience.
💸 Pricing Model
- Free Plan:
- ✅ 5 AI-powered recommendations/month
- ✅ Unlimited access to community-validated suggestions
- Paid Plans:
- ✅ Essential – £5.99/month (30 recommendations/month)
- ✅ Unlimited – £18.99/month (Unlimited usage)
How we built it
Total Build Time: I poured 54 hours of focused, late-night work into bringing MoodifyMe to life during the hackathon.
My development process was highly iterative and driven by a "feature-first" approach, especially given the limited development time. I started by tackling the core challenge: how to get an AI to provide contextually relevant mood recommendations. All development was done using the Diffs feature.
📁 Project Documentation Created a dedicated docs folder containing activeContext.md, productContext.md, progress.md, projectbrief.md, stripe-deployment-guide.md, systemPatterns.md, and techContext.md. This comprehensive documentation proved invaluable for improved context with Bolt.new interaction, internal tracking, and maintaining project clarity
Tech Stack Overview
- Frontend: React 18 + TypeScript on Bolt.new
- Backend: Supabase
- Edge Functions for AI processing and API orchestration,
- Database functions to encapsulate server-side logic, optimise performance, and enable secure, reusable data operations, including triggering automated responses.
- RLS for security.
- AI: Google Gemini 1.5 Pro (used for core recommendations throughout development)
- Payments: Stripe (subscriptions + webhook lifecycle management)
- Media: Spotify (primary for previews, with "Play on Spotify" linking), YouTube (fallback for full songs)
- Styling: Tailwind CSS with a therapeutic, mobile-first UI
- Authentication: Supabase Auth (for comprehensive user account management)
🧠 Sample Prompt Design This is the core of MoodifyMe's personalised recommendations:
const fullPrompt = `You are MoodifyMe, an expert AI psychologist and wellness coach with access to real-time information. Today is ${currentDateTime}.
**CRITICAL: Return EXACTLY this XML structure and absolutely nothing else. Do NOT add any additional tags, metadata, or technical information:**
<music_recommendation>
<title>[Specific Song Title]</title>
<artist>[Artist Name]</artist>
<explanation>[Why this song helps with the emotion, music theory/psychology behind the choice]</explanation>
</music_recommendation>
<activity_recommendation>
<title>[Activity Name]</title>
<instructions>[Step-by-step instructions personalized to user's current emotion and situation]</instructions>
</activity_recommendation>
<location_recommendation>
<suggestion>${locationSuggestion}</suggestion>
<what_to_do>${locationWhatToDo}</what_to_do>
</location_recommendation>
🧠 Sample Database Design The mood_sessions table is central to storing anonymized user interactions and feedback:
CREATE TABLE public.mood_sessions (
id uuid NOT NULL DEFAULT gen_random_uuid(),
user_id uuid,
age_range text NOT NULL,
emotion text NOT NULL,
intensity integer NOT NULL CHECK (intensity >= 1 AND intensity <= 10),
time_available text NOT NULL,
can_move boolean NOT NULL DEFAULT true,
postcode text DEFAULT ''::text,
recommendation_data jsonb,
feedback boolean,
created_at timestamp with time zone DEFAULT now(),
session_token text,
is_successful boolean NOT NULL DEFAULT true,
CONSTRAINT mood_sessions_pkey PRIMARY KEY (id),
CONSTRAINT mood_sessions_user_id_fkey FOREIGN KEY (user_id) REFERENCES public.user_profiles(id)
);
Challenges we ran into
Reliable AI Output: ✅ AI Integration and Response Parsing: Integrating with the Gemini LLM and ensuring consistent, structured XML responses was crucial. We had to implement robust parsing logic
(src/utils/geminiParser.ts) to extract the recommendation data reliably, including fallback mechanisms for unexpected AI output. // src/utils/geminiParser.ts const extractXMLContent = (text: string, tagName: string, parentTag?: string): string => { let searchText = text; if (parentTag) { const parentRegex = new RegExp(`<${parentTag}>(.*?)</${parentTag}>`, 's'); const parentMatch = text.match(parentRegex); if (parentMatch) { searchText = parentMatch[1]; } else { return ''; } const regex = new RegExp(`<${tagName}>(.*?)</${tagName}>`, 's'); const match = searchText.match(regex); return match ? match[1].trim() : ''; } else { const regex = new RegExp(`<${tagName}>(.*?)</${tagName}>`, 'gs'); const matches = [...text.matchAll(regex)]; return matches.length > 0 ? matches[matches.length - 1][1].trim() : ''; } };Music Integration: ✅ External API Orchestration: Combining data from multiple external APIs (Gemini, Spotify, YouTube) within Supabase Edge Functions required careful handling of API keys, rate limits, and error scenarios. Ensuring YouTube playback as a reliable fallback for full songs.
Privacy vs. Insight: ✅ Implemented strict data handling by sharing only successful, anonymised recommendations, enforced through RLS-secured Supabase policies, ensuring user privacy.
Emotionally Calming UX: ✅ Designed the interface with careful consideration for touch-first interactions, soft gradients, and strategies to reduce cognitive load, aiming for a truly therapeutic experience.
Stripe Subscription Management: ✅ Implementing a comprehensive subscription system with different tiers, monthly limits, and secure webhook handling for lifecycle events (checkout, subscription updates, cancellations) was intricate. This involved careful database schema design (user_profiles table) and robust Edge Function logic
Authentication and Data Migration: ✅ Managing user sessions, especially the transition from anonymous to authenticated users, and ensuring their mood session data could be migrated seamlessly, posed a challenge. While initial authentication is complete, full data migration is a planned next step.
Real-time UI Updates: ✅ Maintaining a responsive UI with real-time updates for features like recommendation counts and subscription statuses, especially when dealing with asynchronous operations and external API calls, required careful state management with React Query.
Bolt.new Agent not resolving bugs: ✅ Occasionally, the agent wouldn't solve the issue highlighted over multiple attempts (5 - 10 iterations). Had to use an external agent, Claude 4. Had problems with setting up gradient on sliders, CROS issue, reset password process (agent kept trying to authenticate the user despite it being already authenticated), combining logo "M" with the sign "oodifyMe" (had to be in the position absolute). Positioning the bubble under the nav buttons.
Accomplishments that we're proud of
- Seamless AI-Powered Personalisation: The ability to generate highly personalized and contextually relevant recommendations in under 30 seconds, integrating multiple data sources (user input, AI, music APIs), is a significant achievement.
- Successful integration of multiple advanced technologies: Seamlessly combining AI (Gemini 1.5 Pro), backend services (Supabase Edge Functions), payment systems (Stripe), and media APIs (Spotify, YouTube).
- Age-Aware Prompting: A unique approach to AI prompting that accounts for the user's age, significantly increasing the psychological relevance and effectiveness of recommendations.
- Robust Stripe Integration: Successfully implementing a full-fledged subscription system, including checkout, webhook handling, and user profile updates, allows for flexible monetisation and user management.
- Therapeutic User Experience: The application's calming aesthetic, intuitive multi-step form, and thoughtful animations create a truly supportive and non-judgmental environment for users. The "Therapeutic Design System" is a unique aspect we're very proud of.
- Comprehensive History & Community Features: Providing users with a detailed history of their mood sessions and the ability to explore successful community recommendations adds immense value and fosters a sense of shared well-being.
- Scalable Architecture: By leveraging Supabase for backend services and Edge Functions, the application is designed to scale efficiently, handling AI inferences and external API calls without burdening the client.
- Community Intelligence Algorithm: A proprietary system that surfaces only recommendations proven to be successful by previous users.
- Building a complex, polished prototype in limited time: Despite a demanding schedule, I managed to create a fully functional and user-friendly app, leveraging efficient tools and focused effort.
What we learned
🚀 Technical Growth
- Advanced Supabase Capabilities: Deepened our understanding of Supabase's ecosystem, including Edge Functions, RLS, and database triggers, for building a secure and scalable backend.
- Effective AI Prompt Engineering: Learned the nuances of crafting precise prompts for large language models like Gemini to ensure structured and relevant outputs.
- Mastered the design of advanced AI prompts for personalised, psychologically sound recommendations, specifically leveraging Gemini 1.5 Pro.
- Built and deployed Supabase Edge Functions for scalable AI processing and efficient Stripe billing workflows.
- Gained good understanding in React Query, Spotify API integration, and implementing real-time UX enhancements.
- Successfully integrated Spotify and YouTube to provide comprehensive music solutions, including fallbacks, and enabling direct playback on Spotify.
- Leveraged Claude 4 as a powerful assistant for debugging complex logic issues that Bolt.new sometimes struggled with, significantly accelerating development.
🎯 Product & User Psychology
- Learned to create a therapeutic, emotionally intelligent UX with calming visuals and a progressive, low-friction flow.
- Conducted research into age-specific psychological needs to ensure truly tailored support.
- Successfully balanced a freemium monetisation strategy with an ethical, user-centric design approach.
🧘 Personal Insight
- Bolt.new truly enabled development with "the speed of lightning," thanks to its super easy integrations and helpful hand-holding capabilities, which genuinely impressed me.
- Realised that even with extremely limited time, it's absolutely possible to build something deeply meaningful and impactful.
- Understood that *passion, purpose, and a genuine problem worth solving * are far more critical drivers than achieving a state of "polished readiness."
What's next for MoodifyMe - AI-Powered Mood Improvement in 30 Seconds
MoodifyMe delivers:
- 30-second emotional relief, grounded in real psychological principles.
- A global tool, accessible even during moments of emotional overwhelm.
- A sustainable business model with tangible utility from Day 1.
The global mental health app and software market is a rapidly growing sector, projected to reach significant valuations in the coming years, reflecting an increasing awareness and need for accessible mental wellness solutions. Mental health challenges are a growing problem worldwide, making tools like MoodifyMe more critical than ever.
This hackathon is truly just the beginning. I'm actively continuing MoodifyMe beyond this event, transforming it from a project into a lasting product—because the world genuinely needs more tools that care.
Looking ahead, I have many exciting community-based features planned to further enhance MoodifyMe's impact. The ideas are still popping up in my head and are crystallising, but some of them include:
- Automated testing frameworks : Implement a comprehensive testing suite to ensure stability and reliability across all features.
- Quick start option: implementation of a quick start feature for moodifications, for returning users
- Improved Error Handling & Accessibility
- Social Login Providers: Implementation ofat least two OAuth (Google OAuth) for easier user onboarding.
- Subscription Management Dashboard: Creation of dedicated user dashboard for managing subscriptions, viewing billing history, and accessing invoices.
- Weekly Personalised Support Plans: AI-generated, tailored plans to help users build long-term mood resilience (based on their history).
- Extended Recommendation Logic: AI's recommendation algorithm refinement for even more nuanced and effective suggestions.
- Searchable Events & Workshops: Integration to help users discover local and online mental wellness events when they add location in they moodification request.
- Support Groups & Forums: A safe space for users to connect, share experiences, and support each other, or suggest they own way of improving mood fast.
- Expert-Led Content: Curated articles, videos, and exercises from mental health professionals.
- Progress Tracking & Insights: Visual dashboards to help users understand their mood patterns and improvement over time.
- Gamification Elements: To make the journey of self-improvement engaging and rewarding.
These features will build upon MoodifyMe's core strengths, creating an even more comprehensive and supportive ecosystem for emotional well-being.
Testing
User to test the application:
Challange Cimplience
Custom Domain Challenge
Deploy Challenge:
MoodifyMe successfully deployed a full-stack Bolt.new application using Netlify. This involved seamlessly integrating a React 18 + TypeScript frontend, a Supabase backend for AI orchestration and API, and Google Gemini 1.5 Pro. The deployment demonstrates a robust and fully functional application accessible to users.
- Netlify Team account's slug: lszinternationaltradingltd
Startup Cahallenge
MoodifyMe demonstrates strong startup potential by tackling a significant market gap in personalized mental wellness solutions, leveraging a scalable Supabase backend. Specifically, we utilized Supabase Edge Functions for AI processing and API orchestration, alongside Supabase's Row Level Security (RLS) for robust security. Also used database functions to encapsulate server-side logic, optimize performance, and enable secure, reusable data operations, including triggering automated responses. This ensures the project is prepped to scale to millions of users. Its freemium business model, offering both free community-driven insights and premium AI recommendations, outlines a clear path to monetization and sustainable growth, addressing user value immediately.
- organization slug: vmanbwkpaylqfnabipre
Inspirational Story
MoodifyMe has a powerful origin deeply rooted in my personal experiences. As a father juggling two jobs and over 70-hour work weeks, the idea was born from my own dilemma of finding time to build something meaningful during the hackathon. My passion for self-development and mental health, often expressed by providing a listening ear during my taxi talks, directly inspired the purpose behind MoodifyMe: to scale that support and empathy globally. It truly represents building with purpose and surprising myself, given my limited time.
✅ Built with Bolt.new
This project was proudly built primarily using Bolt.new and displays the required badge. Bolt's intuitive, AI-hybrid environment enabled development with "the speed of lightning" and provided super easy integrations, making it possible to construct such a polished prototype in just a few intense, highly caffeinated evenings. Where Bolt faced unique challenges, I leveraged Claude 4 for problem-solving and rapid iteration, showcasing a robust and adaptive development process.
Thank you for this life-changing opportunity.
Built With
- bolt.new
- gemini
- llm
- netlify
- postgresql
- react
- spotify
- stripe
- supabase
- tailwind
- typescript
- youtube
Log in or sign up for Devpost to join the conversation.