M
M
Magny resources
Search…
⌃K

How Magny works

Magny is a SaaS command palette, delivering search results in real-time from the first keystroke. Its powerful backend lets you seamlessly implement search within your SaaS applications. Note that Magny is not a full-text search, but it is a layer that helps you implement action, menu or help doc document searches. Hence if you would like to use a search engine that handles thousands or millions of pages, try TypeSense, Algolia or ElasticSearch.
While working with Magny, the first step is to add your commands and categories, where each command corresponds to an action in your SaaS app. Categories holds commands and provides a proper UI experience.
When you are done adding commands, where a command can be, for example, a menu item (e.g settings), an action (e.g add a team member), or a search intent in help docs, now you are ready to go production.
Going production means adding a few lines of code that we provide you to your SaaS environment. Now, your users are ready to start using the Magny command palette by simply hitting Cmd-k.
At this stage, you’ve got the basic structure of Magny in-app search solution.
There’s also much more to creating an in-app search implementation, and the documentation walks you through every possibility.

The Magny engine

Magny has 2 main components:
  1. 1.
    The Magny search widget, or popup, which is ready to run when the app loads. The search is performed within this widget.
  2. 2.
    The Magny dashboard where the admin users enter commands and corresponding actions.
Magny is both a frontend and a backend to your in-app search mechanism. When you implement search in your web or mobile app, it helps users query strings and get results based on that query.
The first step to implement Magny is to add commands and categories. Those commands are run when user searches for them. You can also define how your frontend search panel (which can be referred as a popup or widget) looks and behaves, where you make sure it matches your brand design.
When you are done with adding even one command, you’ve got the basic structure of an Magny in-app search solution.

Relevance of search strings

Magny search engine is capable of understanding user intent if there is a typo as well. If the user makes no mistakes while searching, then naturally there are no issues and Magny orders them with the best ones first.
However, when the user makes a typo while searching for a piece of information, Magny's fuzzy algorithm makes sure the best matches also appear.
Fuzzy searching (more formally known as approximate string matching) is the technique of finding strings that are approximately equal to a given pattern (rather than exactly). Magny uses Fuse.js to determine fuzzy strings and shows the most relevant results.
There are a few criteria and examples of the ways the Magny engine shows commands when there is a typo:
  • What is the number of typos?
  • Does the query match the first letter or the whole word?
When you add up the answers to these questions, some records may or may not show up when there is a typo. This is what determines the order of the results.

Insights and analytics

Building a great in-app search experience is also about refining it based on how users interact with it. Magny's analytics for keywords and deadends provide constant and reliable feedback. This is crucial to know whether your in-app search solution is achieving your goals. You can find more information under Analytics on how you can benefit from those insights, and provide a better product by fixing product issues you encounter.

Magny infrastructure

Magny command palette service has a cluster infrastructure and a load balancer acts as a proxy to distribute loads. If a server end point goes down, the other is always available. We are aware that in-app search availability is critical to our users and customers, and we give this the highest priority in our day-to-day tasks.
There are two server clusters of Magny - one in the US and the other in EU. Customers who don't want to store their data in the US can always get in touch with us so we can set their service in the EU zone. This is especially true when EU customers would like to setup their service in the EU due to GDPR restrictions.