· Product· Help centre

A help centre that forgives typos

Nobody types “delete a task” when something is broken. They type “delet a tak”. Here is what that changes about how you build a search.

By The Eos team5 min read

Searching a help centre is not searching documentation. Someone reading documentation roughly knows what they are after; someone opening a help centre has just been caught out, is in a hurry, and types what is in their head — not the title of the page we wrote.

That is a difference in kind, not in degree, and it decides almost everything that follows.

Accents are not a spelling variant

In French the first rule is that one: “evenement” has to find “Évènement”, and “echeance” has to find “Échéance”. It is not a tolerance bolted on at the end — it is the default, because nobody hunts for accented keys inside a search box.

Under the hood, every field is folded once, when the index is built: Unicode decomposition, marks stripped, lowercased. Once — never while you type. That is the whole difference between an instant search and one that re-normalises a hundred and fifty pages on every keystroke.

Four ways to match, in this order

  1. 1

    The prefix

    The query opens the field, or one of its words. The strongest match, and the one you recognise without thinking.

  2. 2

    The substring

    The query is somewhere inside. “ture” in the middle of “facture” is worth less than “fact” at its start: treating them alike surfaces results nobody recognises.

  3. 3

    The subsequence

    The letters are there, in order, with gaps. This is what catches abbreviations — “fclt” finds “facturation clients”.

  4. 4

    The typo

    The query is one or two corrections away from a word in the field: insertion, deletion, substitution, and the swap of two neighbouring letters.

The fourth mode is the expensive one, which is why it is not on everywhere. Measuring an edit distance walks the whole word where a substring search stops at the first hit. The app’s command palette does without it: it searches a few hundred short entries that the subsequence already catches. The help centre turns it on — because a help page that does not answer a typo does not answer at all.

A correction budget that follows word length

Forgiving typos indiscriminately makes a search useless: under four letters, one correction changes the word. “pas” must not find “bas”. So the budget is zero under four letters, one up to seven, two beyond.

And when nothing really matches, returning nothing beats returning roughly anything. A list half made of noise teaches the reader to stop reading it. Results are therefore cut below a fraction of the best score: what is not playing in the same league does not show, and the threshold tunes itself to the query.

A hundred and twenty-four videos, and the text around them

The rest of the help centre follows the same idea: show the action rather than describe it. Every feature has its video, under twenty seconds, in light and dark, and every concept — a role, a permission, a token — has its article. The search covers both, article bodies included: the answer to “how long does an invitation last” lives in a paragraph, not in a heading.

Frequently asked

Does the search work without JavaScript?

Yes. The results page is server-rendered and has its own address: it can be shared, bookmarked, and it answers without a single line of script running. The dropdown on the input is only a shortcut for people already at the keyboard — and it runs on the same index, so pressing Enter never changes the results under your eyes.

Is the help centre available in English?

Yes, in full: every topic, guide and article exists in both languages, under two distinct addresses. A guide left untranslated fails the test suite before it can reach production.

Read next