My name is Quentin, CEO of MeiliSearch, originally from Brittany, developer, and entrepreneur for the past ten years. Former Duoquadragintien (42 school).
MeiliSearch is the search engine that allows companies and developers to offer an incredible search experience on their products and websites very simply. We have developed an ultra-relevant and ultra-fast search engine focusing on the developer experience.
MeiliSearch is the best of both worlds. We have the performance and relevance of Algolia but with the customization capacity of Elasticsearch. However, a unique developer experience that allows any dev to test and use MeiliSearch quickly.
Before coding MeiliSearch in Rust, we had made a prototype in Golang. This allowed us to create a Proof-of-Concept, but we quickly reached the limits of the performance. To build such a fast search engine, we didn't have much choice. Either C++ or Rust. We were lucky that Clément (Kero), our CTO, contributed to the Rust language and was an early adopter since version one of Rust. So we could make a real choice by knowing both languages very well. We mainly chose Rust for the safety and rigor of the language, which is also the two main defaults of C++ according to us.
We started by using RocksDB, a well-known C++ Key-Value Store, but we faced some performance issues when looking up/retrieving data.RocksDB is better for writing than reading. The RocksDB Rust wrapper was not perfect and made our usage of RocksDB our main cause of the issues. That's why we switched to LMDB in C, for which Clément coded a complete Rust wrapper. Today, our storage engine has been customized and has several parts rewritten to fulfill our needs.
Today our biggest challenge is to be able to increase our indexing speed drastically. For some use cases, if users don’t follow the best practices, indexations could take an hour when it usually should take a few minutes. We have many ideas and solutions to solve that. The other challenge that we face is keeping our high developer experience level. We want to enable everyone to use MeiliSearch, and that's why the whole company is involved in the developer experience development.
We built MeilISearch for two main reasons, firstly because we were fed up with people struggling with the search for most of the services and applications they use every day. But also because, as a developer, we quickly realized that creating a good search experience on a product was extremely difficult. Finding the solution, configuring it, customizing it for your use case, and putting it into production is a complex subject for developers and companies. That's why we decided to create a company whose mission is to make search accessible by quickly becoming the go-to-search solution for all developers.
At the time I wrote those lines, we were 22 at MeiliSearch. Mainly developers, dev advocates, product managers, designers, and some people in the HR team. Today we have 300 contributors who work mainly on different integrations and SDKs we have.
Always! We love having outside contributors. We love to receive contributions, but we also love to help contributors make their first open-source contributions. It's amazing to see the love that is shared in our community. I wouldn't want our product to be a closed source for anything in the world.
Our plan for the next 12 months is to continue building an outstanding team like the one we have with more and more senior profiles. From a product point of view, on the open-source side, we want to improve the indexing speed, as I said but also add features that are very much requested by our community on our public roadmap. Last but not least, we want to release our Cloud version in early 2022. We already have a closed source Beta version with a lot of people on the waiting list, so we're looking forward to releasing the project and having even more impact on the users.
Give, and you shall receive! Besides the human aspect, which is great, it's amazing to create an open-source product because the people in the community give so much feedback that allows you to create a product that really has an impact.
By far our team. We managed to create a great team with an incredible atmosphere and values. It's really a pleasure to work with this team every day.
I've been around a bit in all the languages, some longer than others. My favorite language today is Rust. I had to learn it to develop MeiliSearch. Even if the first few months were complicated (Borrow checker ❤️), it became an absolute pleasure once I got over this barrier. I was a bit of a hacker, and Rust allowed me to become more precise and rigorous in my development. The ecosystem is crazy, and the language quickly adds new features (like async/await).
I hate no language, but I think the language I have the least affinity with is probably Ruby. I've always found it fun to learn new languages.
It depends on the need. If my use case allows me to use PostgreSQL, I would prefer it. Unfortunately some times, it is necessary to use MongoDB. To be honest, I haven't used MongoDB for a long time. In the beginning, I used MongoDB because it was super simple, but today to answer this need, I would go more towards Supabase.
It depends on the size of the block in the for_each. Clément (Kero) taught me how to code in rust, paying attention to the readability of the code. So it doesn't matter, but it mustn't affect the readability of the code. It also depends if there are performance problems because the for_each is more powerful.
Well, in addition to the basic VSCode and Github tools, I think Vercel and Cloudflare (especially Workers) are great for their simplicity.
I have always used DigitalOcean and Scaleway because it is simple. However, I haven't done DevOps for a long time, so today, I'd probably look at even simpler solutions like Qovery.
Meilisearch, well Meili comes from complicated brainstorming as it often is to find the name of a company. Meili is the Nordic god of oblivion. Our mission is to prevent oblivion through search, so it seemed like a good name.
If you want French, I would say contact Valérian Saliou, CTO of Crisp and a great open-source contributor, and if you are looking for international, I would advise you to speak with Glauber Costa former VP of Engineering at ScyllaDB and maintainer of many open source project including Glommio.
Check out MeiliSearch now and enjoy their outstanding search experience