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

Photo 147@12 08 2025 21 09 32

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

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

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

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

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

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

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