Qualfita, AI Music-Taste Mapper
My role: Founder, designer, builder. Research, brand, visual identity, frontend, and the recommendation engine, built by directing AI agents. Live at: qualfita.com.br (still testable). Status: Launched, then paused, my sharpest craft work, and an honest post-mortem.
Qualfita reads your Spotify library and hands you "tapes", recommendations for what your shelf is missing, each one with the reason behind it, wrapped in an 80s cassette visual language.
The craft is the strongest thing I've built, this very portfolio is qualfita-inspired. But the entry barrier strangled conversion, and reading that signal honestly is why it's paused. This case is about both.
Context
Streaming algorithms are optimized to keep you listening, not to widen you. Over time they flatten taste into a comfortable loop. Qualfita does the opposite: it reads what you already like and shows you what's missing next to it, with an explanation you can actually trust.
The premise: real discovery starts from what you already are. So the product doesn't hand you a generic playlist, it reads your shelf, maps the shape of it, and pulls the adjacent things you haven't heard, each with the why.
The design problem
Recommending music is easy. Recommending it with a trustworthy reason, without the model inventing artists or genres that don't exist, is the hard part.
An LLM asked "what should this person listen to?" will happily hallucinate a plausible-sounding band that never existed. In a discovery product, that quietly destroys trust: one fake recommendation and the user stops believing the real ones. The bottleneck was never taste, it was grounding.
That's the same trust problem I design around everywhere: the system has to show where each answer comes from, and refuse to guess when it can't.
How it works
Three public music datasets feed a language model that recommends in four modes, with anti-hallucination baked in.
Data sources
Every Noise at Once (6,291 genres with coordinates + anchor artists), Ishkur's Guide for electronic-music positioning, and Last.fm for enrichment, not direction.
Recommendation engine
Your library is bucketed head / mid / tail, seeds go to an LLM with grounded context, and every returned artist is fuzzy-matched against the real index to reject anything invented.
The four tapes
What's missing, what goes deeper (B-sides, side projects), what's adjacent (one scene over), and what connects (the story between artists you already love).
Grounding, so it doesn't lie to you
Every recommendation is checked against a real catalogue before it reaches you:
The model proposes, but a fuzzy-match / Levenshtein pass and an anchor quorum reject anything that doesn't exist in the index. It's the same discipline as source-tagging in my other work: the LLM is a material with its own failure mode, and the design exists to catch it.
The design, cassette as a system
The visual identity is built on an 80s cassette language, BASF-tape blues, reds and yellows, mono type, the physical metaphor of Side A / Side B. It's the most complete visual system I've made, to the point that this portfolio you're reading is itself qualfita-inspired.
The "tape" isn't decoration: it's the mental model. A tape is a curated, finite, personal object, which is exactly what a good recommendation set should feel like, against the infinite, impersonal scroll of a streaming feed.
Launch, and the hard truth
A launch video pulled roughly 4,000 views and drove around 100 people to the site. Of those, 21 actually connected their Spotify and synced their library, that's the real conversion number.
The gap between ~100 visits and 21 syncs is the entry barrier in one line: to get a single recommendation, a user needed a Spotify account and a manual library sync (a bookmarklet that only runs on desktop). That's a heavy door before any value.
But here's the other half: those 21 users left 149 recommendation feedbacks, around seven each. Whoever crossed the barrier, engaged. The product worked; the door was too heavy. I built a no-login "hero moment", one artist in, three grounded recommendations with the why, no signup, to soften that door. It helped. It wasn't enough.
The honest decision to pause
Qualfita was meant to be a portfolio project. It ended up taking more energy than a portfolio piece should, chasing a conversion that a convenience war against Spotify was never going to win, Spotify copies fast and owns the account you'd have to connect through.
So I paused it. Not because the craft failed, the base is strong and it's still standing, but because reading that signal and stopping is the product call I'm proud of, more than any launch metric. It's sleeping, with a solid foundation, in case a lighter entry path shows up later.
What I'd flag in an interview
The entry barrier is the whole lesson. A product can be beautifully built, engaging for the people who reach it, and still fail on the one thing that happens before the first taste of value. Reading that in the numbers, and choosing to stop rather than pour more energy in, is product judgment, not failure.
I build by directing AI. The engine, the grounding, the pipeline, all built by directing AI agents rather than hand-coding, with the design carrying the trust load the model can't. That's how I ship end-to-end, solo.
MADE-WITH-AIQualfita was built by directing AI agents; the direction, the design, and the honest reads were mine. Same principle the product itself runs on.