How Birdfeeder finds your bookmarks

Published by
Philipp Defner's Twitter profile picture'
Philipp Defner
· October 19, 2022 · 1 minute read

This is a more technical blog post about how Birdfeeder is able to instantly search through thousands of bookmarks to find precisely the Tweet you are looking for.

Birdfeeder stores a lot of Tweets in a relational database, in our case that's Postgres hosted on DigitalOcean.

This works well and can be queried efficiently. Postgres supports full-text search over large sets of data out of the box. If you are looking to add full-text search capabilities to your project and you already use Postgres that should be your first stop. There's a great introduction on using Postgres for that use case by crunchydata. The smart people of pganalyze published a good blog post about which postgres feature is best for which use case too.

For the Birdfeeder Twitter Bookmark Search we decided on using a new project called meilisearch. You could call it a simpler and more lightweight Elasticsearch, or an open-source Algolia. The reason for choosing Meilisearch were:

  • Easy to maintain and run (Docker container)
  • Good Ruby integration
  • Integration with InstantSearch on the frontend
  • Fun (a new technology!)

The last point should not be underestimated in this case.

If you are curious how it works, sign in and give it a try after clicking "Bookmark Search" in the navigation. Let us know what you think!