Skip to content

typesense/showcase-songs-search

Repository files navigation

🎶 MusicBrainz Song Search, powered by Typesense

This is a demo that showcases some of Typesense's features using a 32 Million database of songs.

View it live here: songs-search.typesense.org

Tech Stack

This search experience is powered by Typesense which is a blazing-fast, open source typo-tolerant search-engine. It is an open source alternative to Algolia and an easier-to-use alternative to ElasticSearch.

The songs dataset is from MusicBrainz which is an open music encyclopedia that collects music metadata and makes it available to the public. Please contribute to it if you're able to!

The app was built using the Typesense Adapter for InstantSearch.js and is hosted on DigitalOcean's App Platform.

The search backend is powered by a geo-distributed 3-node Typesense cluster running on Typesense Cloud, with nodes in Oregon, Frankfurt and Mumbai.

Repo structure

  • src/ and index.html - contain the frontend UI components, built with Typesense Adapter for InstantSearch.js
  • scripts/indexer - contains the script to index the MusicBrainz data into Typesense.
  • scripts/data - contains a 1K sample subset of the MusicBrainz songs database. But you can download the full dataset from their website.
  • scripts/benchmarking - contains a k6 script to load test the Typesense Server.

Development

To run this project locally, install the dependencies and run the local server:

npm install -g parcel-bundler # Need to use NPM for this: https://github.com/parcel-bundler/parcel/issues/1036#issuecomment-559982275

yarn
yarn run typesenseServer
ln -s .env.development .env
BATCH_SIZE=1000 yarn run indexer
yarn start

Open http://localhost:3000 to see the app.

Deployment

The app is hosted on DigitalOcean App Platform.

Pushing to master will deploy the app to production.

About

A site to instantly search 32M songs from the MusicBrainz songs database, using Typesense Search (an open source alternative to Algolia / ElasticSearch) ⚡ 🎵 🔍

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project