Xheikh Talha
Contact me
All work

Product build2026

SoundFind

Record a few seconds. Get the song.

A local-first, Shazam-style web app. Record 5 to 8 seconds of any song and identify it from your own indexed music catalogue using audio fingerprinting.

My role
Full-stack engineer
Key areas
Next.js 15, TypeScript, Supabase, FastAPI, librosa, Docker
Links
SoundFind home screen with a large tap-to-identify microphone button.

The problem

Identifying a song from a short, noisy recording means matching a few seconds of audio against a whole catalogue, fast, without sending everything to a third-party service.

What was built

SoundFind fingerprints audio with spectrogram peak constellations and matches them against a catalogue you index yourself. The web app and the matcher deploy independently.

From a recording to a match

  1. Record

    The browser records 5 to 8 seconds of the song.

  2. Send

    A Next.js route forwards the clip and injects the server-side API key.

  3. Fingerprint

    The FastAPI matcher builds a spectrogram and picks peak constellations.

  4. Match

    Peak-pair hashes are looked up in the indexed catalogue.

  5. Answer

    The best match returns to the app and is saved to the user's history.

What it is made of

Web app

  • Next.js 15 App Router
  • TypeScript
  • Vanilla CSS

Data

  • Supabase Auth
  • Postgres
  • Storage

Matcher

  • FastAPI
  • librosa
  • numpy
  • scipy

Delivery

  • Vercel
  • Hugging Face Spaces (Docker)

A working recognition pipeline end to end, with admin ingest for new tracks and per-user history.