Inspiration
Music streaming today still makes you do the work — pick a genre, scroll a mood playlist someone else curated, or type a search and hope. We wanted something that just understood what you're feeling in plain words. Typing "studying at 2am, kind of nostalgic" should be enough — the app should do the rest. That's the whole idea behind Lamia-X.
What it does
Lamia-X is an AI-powered music player that takes a short description of your current vibe and instantly builds a listening session around it. Type something like "post workout" or "rainy day, feeling low" and the app:
- Uses AI to translate your mood into music tags
- Pulls real, royalty-free tracks that match those tags
- Starts playing instantly — no signup, no scrolling
- Lets you save favorites and revisit your mood history
- Remembers what you've searched so you can jump back into an old vibe
No logins, no paywalls, no friction — you land on the page and you're listening within seconds.
How we built it
- Frontend: Next.js + Tailwind, UI scaffolded with v0 and refined by hand
- AI layer: Gemini 1.5 Flash converts natural language mood descriptions into structured music tags
- Music source: Jamendo API for real, legal, royalty-free tracks with direct streaming
- Audio playback: Native HTML5 audio wired to a custom player UI (play/pause, seek, skip, queue)
- Analytics: Novus.ai installed to track real usage — moods searched, session length, skip behavior
- Hosting: Deployed on Vercel with serverless API routes handling the AI and music-fetch logic
- Mobile: Fully responsive layout with a custom bottom-nav and slide-up drawers for mood history and saved tracks on smaller screens
Challenges we ran into
- Getting Jamendo's tag-matching to return varied results — early versions kept surfacing the same popular tracks regardless of mood, so we added randomized offsets and shuffling to keep every search feeling fresh
- Wiring up a fully custom audio player from scratch — syncing play state, progress bar, and skip/previous logic with a real
<audio>element took more care than expected - Making the previous button actually go to the previous track instead of just restarting — needed a proper play history stack
- Squeezing a three-column desktop layout into something that works cleanly on a phone screen without losing functionality
Accomplishments that we're proud of
- A genuinely working end-to-end product — type a mood, get real music, no mock data anywhere
- Built entirely on free-tier tools (Gemini free tier, Jamendo free API, Vercel free hosting) — zero cost
- Clean, distinctive UI that doesn't look like a generic music app template
- Fully responsive — works as well on mobile as it does on desktop
What we learned
- How to chain two different APIs (an LLM and a music catalog) into one smooth user-facing feature
- The importance of randomization in recommendation systems — without it, "personalized" results just feel repetitive
- Building a custom audio player is harder than it looks — state syncing between UI and the actual audio element matters a lot
- Designing mobile-first patterns (bottom nav + drawers) for a layout originally built for desktop
What's next for Lamia-X Player
- Persistent storage so saved tracks and mood history survive a page refresh (currently session-based)
- Smarter recommendations that learn from skip/save behavior over time, not just the current mood
- Shareable mood playlists — generate a link so others can listen to your exact vibe
- A "blend" mode that mixes two moods together (e.g. "focused but a little sad")
Built With
- gemini-api
- jamendo-api
- next.js
Log in or sign up for Devpost to join the conversation.