A guide on how Meilisearch - a disrupting powerhouse in search - enhances their developer productivity using Uffizzi’s Ephemeral Webterminal Environments.
Meilisearch is taking search to a new level for thousands of developers across the globe. Meilisearch is an open-source search engine that provides fast and relevant search results to users. It was first released in 2019 and has since gained massive popularity (34k Github Stars) due to its simplicity and ease of use.
Written in Rust, Meilisearch is designed to be developer-friendly and can be integrated into a variety of applications, such as e-commerce websites, knowledge bases, and chatbots. It uses advanced search algorithms to deliver fast and accurate results, even with large datasets.
To improve their development velocity the Meilisearch team recently adopted Uffizzi Ephemeral Webterminal Environments - for every Pull Request Uffizzi is providing the team with an ephemeral cloud based environment for the specific feature branch. This capability drives lightning fast iterations and allows developers and maintainers to quickly review, provide feedback and validate proposed updates to the code base.
In this blog post we'll explore how Meilisearch uses Uffizzi ephemeral environments to improve their developer productivity and showcase Meilisearch previews. We'll also discuss the impact that this integration has had on Meilisearch’s platform and the potential benefits of using Uffizzi ephemeral environments.
An ephemeral webterminal environment is an instance of a command line application deployed with all the dependent services. The application is accessed from a webterminal UI over https in a browser.
Do check out Uffizzi’s blog on ephemeral webterminal environments to get a better idea of how this works generally for CLI tools.
Meilisearch uses Uffizzi’s ephemeral environments for creating temporary staging environments on every pull request which are updated on new commits to the pull request and then deleted when the pull request is closed or merged.
Meilisearch pull request ephemeral environments were designed around testing and interacting with the meilisearch binary. When this meilisearch binary is run the application starts listening on a post where it accepts incoming requests. The following is what the configuration for a Meilisearch ephemeral environment looks like :
version: "3"
x-uffizzi:
ingress:
service: nginx
port: 8081
services:
meilisearch:
image: "${MEILISEARCH_IMAGE}"
restart: unless-stopped
ports:
- "7681:7681"
- "7700:7700"
deploy:
resources:
limits:
memory: 500M
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- "8081:8081"
volumes:
- ./.github/uffizzi/nginx:/etc/nginx
When the Uffizzi URL is shared with the user, the request is routed by nginx to either allow the user to gain access to the webterminal UI or to access meilisearch itself. The following diagrams and the steps below explains this lifecycle in detail.
It is clear that this integration has the potential to improve the previewing experience for non-developer users and developer experience for developers, making MeiliSearch a more accessible and user-friendly search engine. The following are ways Uffizzi ephemeral environments are impacting Meilisearch :
Uffizzi supports several other innovative companies in the same way including NocoDB (33k GH stars), Forem by Dev.to (20k GH stars), Meilisearch (33k GH stars), and Lazygit (30k GH stars). If you’re interested in implementing ephemeral environments for your organization you can set-up a proof of concept for free at Uffizzi Cloud.