MeiliSearch
completed

MeiliSearch Demo

Source: https://blog.meilisearch.com/why-should-you-use-meilisearch-over-elasticsearch/

What's MeiliSearch

Simply put, it's an "open source alternative to Algolia" 1

Why Open Source?

The founders of MeiliSearch wants to make search engine technology a commodity 2. By making it open source, more developers are able to contribute to the project. Contributions could come in the form of submitting issues such as bug reports or feature requests, or Pull Requests (PR) to improve the code or fix bugs.

Being profitable in Open Source isn't unheard of. There are a few notable examples.

TailwindCSS (2M++ | Aug 2020)

Tailwind started as an open source project to provide developers with a different, but highly sought after approach to frontend design. Instead of being too opinionated, they provide developers with low-level utility classes which can be easily extended. As it's open source, the developer community at large was able to help shape the future of the project.

Today, Tailwind does not make money directly from the Open Source project. However, it's commercial by-product, TailwindUI has made close to \$2M 3.

Laravel (3M++ | Nov 2019)

Laravel is a popular open source PHP framework. Millions of developers use it to build profitable projects and companies. Taylor Otwell, the founder of the project built commercial by-products such as Laravel Vapor (serverless laravel, ~1M revenue), Laravel Forge (laravel hosting, ~few M in yearly revenue) and Laravel Envoyer (easy laravel deployment, ~0.5M yearly revenue)4.

Sidekiq (960K | 2020)

Sidekiq is a popular open source Ruby library that allows ruby developers to run background jobs efficiently. Through enterprise licensing for pro features, Mike Perham, the founder makes around 960K in revenue yearly 5.

tldr; Open Source can be profitable

Why MeiliSearch?

Versus Algolia

This is the closest competitor to MeiliSearch. Whilst it's way more well established, it can get very expensive to run an instant search for a high traffic website. With MeiliSearch, the bulk of the cost is what you pay your hosting provider.

Versus ElasticSearch

MeiliSearch doesn't seek to compete with ElasticSearch directly. If a business needs to index big data (billions of documents), then ElasticSearch would still be better. MeiliSearch is positioned between Algolia and ElasticSearch.

It's easier to use than ElasticSearch. MeiliSearch is also more powerful and extensible than Algolia – you can consume their REST API and extend it further. I can imagine other evangelists writing a BERT API service on top of MeiliSearch and having it serve search queries.

The MeiliSearch team has also written an extensive comparison between their project and ElasticSearch here: https://blog.meilisearch.com/why-should-you-use-meilisearch-over-elasticsearch/

Versus Sonic

I've actually tried implementing Sonic to index my emails for SubSubGo. However, I quickly ran into issues with indexing "weirdly encoded" strings (such as emojis maybe).

Versus Tantivy

I haven't tried setting it up but it feels like there is more friction to set things up. There's no ruby or javascript SDKs/libraries I could quickly plug and play. The documentation isn't as friendly as MeiliSearch's either (in fact, it was so easy to add examples for MeiliSearch's documentation in a Pull Request to help improve it!)

It's REST driven

I think the fact that the team decided to make it REST-driven makes it extremely easy to build API wrappers around it. I suspect, although I'm not 100% sure about this, that search queries could be easily cached for most use cases (content sites, documentation, etc – anything that isn't fast changing / dynamic)

This means lower response times and more bandwidth savings. Aka lower costs and higher user happiness.

My Use Case?

I'm using MeiliSearch to build the world's first newsletter search engine, SubSubGo. I'm currently using MeiliSearch to index emails of newsletters. To date, I've indexed around 20-30K newsletter emails. Once I'm done with adding extra features, it'll quickly scale to hundreds of thousands of emails indexed.

Pros

Cheaper than ElasticSearch for sure

Previously, I tried using ElasticSearch but at around 1000 documents, it maxed out the cheaper tiers (USD10-20/mo) on Heroku at 1GB of memory usage. This felt ridiculous to me. Driven to try and keep costs low for a project I'm unsure of making profits with, I tried MeiliSearch and within 2 hours, I got it up and running.

Super easy to setup

It took me another hour to write the code to wrap it for API calls for the instant search. In addition, MeiliSearch has assured that the worst case scenario, MeiliSearch wouldn't use too much RAM and it would rely more by accessing the index on hard disk.

Super friendly team

I tried to contribute to their open source repositories. The team made it really easy and enjoyable for me to do that. Despite the barrage of questions asked, they answered it nicely and taught me a few things about open source.

I've also successfully made my first Pull Request to update the Ruby documentation for MeiliSearch. It'll soon be integrated into their online documentation.

Scalability, potentially

They are working on making MeiliSearch distributed for scalability. As they develop the project further, more optimizations will be made to handle more documents. The project by itself is already impressive and I am confident the team will be able add features that makes MeiliSearch more scalable.

Cons

I don't know yet if MeiliSearch will scale to large volumes of search traffic. But we'll see when SubSubGo takes off – it should be receive a considerable amount of traffic as I'm indexing newsletters. Newsletters are currently a thing in the creator movement, and a shift in how content is published (more people are starting their newsletters versus purely blogging on Medium, Ghost, Wordpress websites)

Scaling it might be tricky. But again, the project is still relatively young so it's hard to tell if MeiliSearch will be able to make scaling easy.



  1. "So here came our idea to develop an open source alternative to Algolia, easy to setup, lightweight and fast." (https://blog.meilisearch.com/start/)
  2. "search engine technology should become a commodity" (https://blog.meilisearch.com/open-source-or-not/)
  3. "going to cross \$2m in revenue next week" (https://adamwathan.me/tailwindcss-from-side-project-byproduct-to-multi-mullion-dollar-business/)
  4. "Laravel ecosystem does a little more than \$3 million a year in revenue." (https://www.indiehackers.com/podcast/137-taylor-otwell-of-laravel)
  5. https://getlatka.com/companies/sidekiq