Local-First веб-приложения

Пропал интернет и приложение перестало работать, потому что все данные оно получало с удалённого сервера. Сообщения не прочитать, документы не отредактировать, а таск-трекер сломался. Знакомая картина?

Большинство веб-приложений остановит работу, но не все. Набирает популярность новая (или хорошо забытая старая) парадигма Local-First: веб-приложение всегда работает с локальной базой данных, а интернет нужен только для синхронизации.

Подход внедряют у себя Linear, Miro, Trello, Figma, Notion, Excalidraw, Replit, Obsidian и растущее множество веб-приложений.

Чтобы реализовать Local-First, разработчикам нужно решить ряд технических вопросов:

  • В какой локальной базе хранить данные?
  • Как приложение должно себя вести при отключении от интернета?
  • Как синхронизировать изменения без конфликта?

Для всех этих ситуаций есть теоретическая база — структуры данных CRDT и алгоритмы синхронизации, написаны библиотеки для фронтэнда на React и Vue, разработаны базы данных.

Выигрыши для пользователя:

  • Высокая отзывчивость интерфейса и моментальное сохранение изменений у пользователя.
  • Непрерывные сеансы работы в приложении — выше продуктивность.

Замечу, что пользователь ожидает, что ваше приложение будет отзывчивым и поддерживать оффлайн-режим. Внедрение улучшит пользовательский опыт, но вряд ли станет главной фичей. Скорее всего, Local-First подход скоро станет частью фреймворков разработчиков и незаметно распространится.

❤️ Жми на сердечко, если интересно ⚡️ Жми на молнию, если узнал новое 🧑‍💻 Жми на ботана, если кодил синхронизацию

Local-First веб-приложения
Пропал интернет и приложение перестало работать, потому что все данные оно получало с удалённого сервера | Сетка — социальная сеть от hh.ru