Search and typeahead
Search runs on Algolia, with typeahead tuned for partial titles, artist names, and misspellings typed on a phone. PostgreSQL is the system of record. The index is derived from it and can be rebuilt from it at any time.
Case study
KarmaDJ
KarmaDJ is a live karaoke request and catalog platform built around fast song discovery, catalog quality, and operational simplicity. Intika’s founder built it and runs it in real venues. The system evolved from watching karaoke nights: how people search on a phone in a loud room, what they fail to find, and what a venue needs from the admin side.
Search runs on Algolia, with typeahead tuned for partial titles, artist names, and misspellings typed on a phone. PostgreSQL is the system of record. The index is derived from it and can be rebuilt from it at any time.
Songs come from YouTube, restricted to a whitelist of karaoke channels so catalog quality is controlled at the source. Ingestion and catalog backfills run inside YouTube API quota limits, which shaped how often and how much of the catalog can be refreshed.
Karaoke video titles are inconsistent. Normalization strips channel boilerplate, tags, and formatting into a canonical title and artist. Alternate titles are kept, so a song is found under the names people actually use for it.
Searches that return nothing are logged. Those misses decide what gets added next, so the catalog grows where people are actually looking rather than by guesswork.
Operators manage the catalog directly: title and artist corrections, alternate titles, channel whitelisting, and backfill runs. The tooling exists so catalog problems get fixed without an engineer.
Playwright covers the core flows in regression. Manual testing on real devices covers what automation misses in a venue. Managed search, one database, and scheduled backfills were chosen for cost and simplicity over doing everything in real time.
Search quality is a catalog problem before it is a search engine problem.
Tooling for the operator is part of the system, not an extra.
Simple and cheap holds up until real usage says otherwise.
Building or modernizing something with problems like these?
Start a project