Grovy
Grovy
HomePlaylists
Open Source
GrovyOpen Source

Built in the open,
because music should be free.

Grovy started as a weekend project — a frustration with bloated music players that track everything you listen to. No ads, no accounts, no telemetry. Just a clean player that respects your time and your data. The entire source code is on GitHub under the MIT license.

Source CodeStar on GitHub

What it does

Streams from multiple sources

Grovy pulls from JioSaavn and YouTube Music simultaneously, interleaves results, and lets you play anything instantly. No account needed.

Ambient UI that adapts to your music

Album art colors are extracted in real-time using ColorThief. The entire interface — backgrounds, gradients, accents — shifts to match whatever you're listening to.

Proper audio handling

HLS adaptive streaming for JioSaavn tracks, YouTube IFrame API for YT content, with automatic codec selection preferring opus/webm at the highest available bitrate.

Runs entirely in the browser

Playlists, favorites, play history, volume — everything is stored in localStorage. There is no backend database. Your data never leaves your device.

How it works

FrameworkNext.js 16 + Turbopack

App router, API routes, SSR

LanguageTypeScript

Type safety across client and server

StylingTailwind CSS

Utility classes, dark mode, responsive

AnimationFramer Motion

Layout transitions, gestures, spring physics

StreamingHLS.js + YT IFrame

Adaptive bitrate, dual-source playback

ValidationZod

Runtime schema validation on API responses

ColorColorThief

Dominant palette extraction from artwork

DeploymentVercel

Edge functions, CDN, analytics

LayerTechRole
FrameworkNext.js 16 + TurbopackApp router, API routes, SSR
LanguageTypeScriptType safety across client and server
StylingTailwind CSSUtility classes, dark mode, responsive
AnimationFramer MotionLayout transitions, gestures, spring physics
StreamingHLS.js + YT IFrameAdaptive bitrate, dual-source playback
ValidationZodRuntime schema validation on API responses
ColorColorThiefDominant palette extraction from artwork
DeploymentVercelEdge functions, CDN, analytics

API Routes

GET/api/songs— Search + trending + charts
GET/api/stream— Audio stream proxy with codec selection
GET/api/search— Multi-source search (songs, artists, albums)
GET/api/lyrics— Lyrics lookup by title + artist
GET/api/songs/radio— Auto-generated radio queue
GET/api/songs/related— Related tracks for current song
GET/api/artist/info— Artist metadata and top songs

License

MIT License. Do whatever you want with it — fork it, ship it, sell it, learn from it. Attribution appreciated but not required. See LICENSE for the full text.

Contributing

If you find a bug or have an idea, open an issue. If you want to fix something yourself, PRs are welcome — just keep the code clean and the UI minimal. No contribution guidelines doc needed, just common sense.

IssuesPull Requests

Grovy is not affiliated with YouTube, JioSaavn, or Google. It is an independent project that uses publicly available APIs. All trademarks belong to their respective owners.