Skip to content
← Projects

Side Project · 2026

Vibe Finder

You describe the feeling. It finds the playlist.

Stack

Next.js · Groq · Vitest

Role

Solo — everything

Timeline

Weekend sprint, March 2026

Live

gilkopel-vibes.vercel.app

I’ve been DJing since 2021. Over time I ended up with 21 Spotify playlists — house, techno, melodic, acid, Arabic electronic fusion, funk. Each with its own energy curve, BPM range, decade distribution, even dominant musical keys.

When someone asks “what should I listen to?”, the answer depends on everything. Their mood, the time of day, whether they want texture or impact. No playlist title captures that. I needed a way to translate a vibe into a match.

So I built two paths in. Eight preset vibe tiles (“Late Night Drive”, “2AM Dancefloor”, “Desert Rave”) that run through a local scoring engine. And a free-text search powered by Llama 3.1 8B via Groq that understands things like “something for cooking at midnight.”

The scoring engine reads 47 audio attributes per playlist and scores across 14 dimensions — mood, energy, genre hierarchy, BPM, decade, harmonic key, artist DNA. It doesn’t just pick the top result. It takes the top 3 and selects one using weighted random, so the same query doesn’t always return the same playlist.

Each vibe tile also carries a visual theme — gradient colors, particle speed, accent hue. Picking a vibe doesn’t just search. It shifts the atmosphere of the entire page.

I didn’t want to deal with a database for something this simple, so everything runs from a CSV in memory. Groq free tier handles the AI calls. Vercel free tier hosts it. Total cost: nothing.

Vibe Finder discovery section with 8 mood tiles and AI search

Search bar, mood pills, and 8 vibe tiles

View live →
GenAIUXVibe-CodingSide Project