Если именно с учетом монго дб (с ней не работал вообще) - пошел вы в гугл с запросом "fuzzy search by mongodb field".
Если абстрагироваться от базы данных и допустить, что мы ищем только по названию статьи то есть следующие варианты:
1) Выгружаем все названия из базы, на бэкэнд запросом и проходимся по ним, смотря какие нам подходят. Как простейший пример - в каждом из названий ищем подстроку-фразу пришедшую с фронтэнда. Чем плохо - в случае если названий много то и памяти сожрется много.
2) Аналогично предыдущему пункту, только уже в запросе проверяете подходит вам название или нет. Плюсы - памяти будет потреблено не так много. Минусы - в зависимости от способа проверки может очень сильно страдать скорость поиска.
3) Комбинация первых двух способов - сначала способ два, легкая фильтрация, того, что точно не подходит, потом уже на бэкэнде - фильтруем то, что вытащили запросом.
4) В sql базах данных есть такие вещи как процедуры и функции. Думаю в монге еще что то аналогичное. Они позволят сделать и запрос и фильтрацию целиком на стороне базы данных и нередко этот способ будет самым быстрым.
Как делал я - Пользовался готовым способом номер 4 (были написаны процедуры для поиска по определенным полям).
Как бы делал вообще с нуля - по возможности на стороне базы данных (перенос логики на сторону бд, очень неплохая и удобная вещь, сначала кажущаяся дикой, страшно непонятной и неудобной).
Либо - специализированные вещи для поиска текста по бд (с ними тоже не работал)
hackuun, сохранение изменений внесенных юзером - vuex
авторизация, чисто авторизация jwt, и уже ее данные можно хранить в локал сторадже.
Или вы предлагаете все внесенное юзером в локал сторадже хранить?
Любые данные введенные пользователем которые глобально нужны приложению. О чем же еще?