Inspiration
The inspiration for MoodCast came from two separate but related ideas. On one hand, we wanted to build something that responded to how a person feels offering quick, personalized entertainment without having to search or think too much. On the other hand, we also knew it would be more motivating when actions feel productive or rewarding, such as during casual browsing. So we combined both: a mood-based entertainment engine layered with an XP system that rewards you over time with a better experience. The result is something that feels emotionally aware and also gives you a reason to keep coming back.
What it does
MoodCast is a smart Chrome extension that evolves with you. It passively tracks your activity by awarding XP every second. With enough XP, you level up and each level milestone unlocks new suggestions for every available mood. Users can select from moods like Chill, Energetic, Curious, Reflective, Chaotic, or Bored. Based on the selected mood and their current level, the extension suggests mood-based videos, games, or websites. The popup also plays background music that changes as users hit higher levels, and users can spend XP on upgrades that accelerate their progress. Overall it's a smooth and effortless experience that is visually responsive to whatever you need, and built entirely for your browser with no tabs, pop-ups, or unnecessary distractions.
How we built it
We used HTML and CSS to design a lightweight yet visually appealing popup layout, with all the styling handled through a centralized stylesheet. JavaScript drives the main logic managing XP generation, level-ups, upgrades, and real-time updates to the UI. Chrome's storage.local API lets us persist XP levels, mood selection, and unlock history across sessions. We structured the project into distinct scripts: popup.js manages all interactivity, upgrades, suggestions, and mood logic; moodData.js holds configuration for each mood and its unlockable links; background.js awards XP through tab activity; and content.js dynamically updates webpage visuals and shows XP popups when needed. Audio playback is triggered in the popup and reflects the user’s level, using one of several themed background tracks.
Challenges we ran into
Merging the XP system and mood suggestion system into a seamless user experience took careful planning. We had to ensure that upgrades didn’t interfere with mood logic, that level-based content unlocked correctly in sync with XP, and that music playback worked consistently across level transitions. One particularly tricky part was coordinating real-time UI updates using chrome.storage.local, which is asynchronous by nature and can easily fall out of sync with the visible state if not handled properly. Getting background music to load and switch dynamically without glitching also took experimentation. Balancing the UI so it didn’t feel crowded, while still housing stats, upgrades, mood controls, suggestions, and games, was another subtle challenge.
Accomplishments we’re proud of
We successfully combined a productivity-inspired reward loop with a deeply personalized, mood-responsive content engine. The app updates in real-time, works offline, and saves your mood and XP progress. We’re especially proud of the layered experience, the fact that music, content, and visuals all evolve as you use the extension. It’s more than just a tool or a toy; it feels responsive, personal, and intentionally designed. We also kept the entire build modular and scalable, allowing future additions without having to restructure the core.
What we learned
We gained a lot of insight into how Chrome extensions persist data, manage state, and handle dynamic interfaces. The importance of clean structure logic when working with asynchronous APIs like Chrome’s storage system is also something else we learned . On the design side, we saw how powerful even simple interactions like changing background music or unlocking a new link can be in reinforcing a sense of progress. We also discovered just how far plain JavaScript can go in building feature-rich, reactive experiences without requiring any frameworks.
What’s next for MoodCast
As a newly built chrome extension, there's definitely still room for growth. We want to incorporate AI to explore mood detection using environmental factors like time of day or even browser behavior. Additionally, a statistics or mood analytics dashboard could give users a fun and insightful way to track how their moods and engagement shift over time. We’re also considering adding more moods and games, refining upgrade mechanics, and potentially offering optional login or profile support for syncing across devices. Long-term, we’re interested in experimenting with light, tasteful monetization options like affiliate links or embedded content previews, always with the goal of keeping the user experience front and center.
Built With
- chrome
- chromeextentionapi
- css
- html
- javascript
- json
Log in or sign up for Devpost to join the conversation.