Hacker News Digest

Тег: #graphql

Постов: 1

Linear sent me down a local-first rabbit hole (bytemash.net) 🔥 Горячее 💬 Длинная дискуссия

Начав использовать Linear, я углубился в «локально-ориентированные» приложения: клиент хранит полную БД, изменения сначала пишутся локально, а фоновый sync-рантайн рассылает их по WebSocket/GraphQL. Пользователь видит мгновенные обновления без сетевой задержки.

Проанализировав реверс-инжиниринг и доклады команды Linear, я понял: их sync-движок — это месяцы работы, чтобы решить офлайн-режим, конфликты, частичную синхронизацию, миграции схем и безопасность.

В 2025-м экосистема уже готова:

  • Electric SQL — Postgres-синхронизация
  • PowerSync — корпоративный уровень
  • Jazz — «обновляешь локальный state — всё синхронизируется»
  • Zero, Instant, Triplit, LiveStore — упрощают разработку

Jazz предлагает CoValues: схема на Zod + автоматическая репликация. Пример:

const Post = co.map({
  title: z.string(),
  comments: co.list(Comment)
});

Меняешь post.title — изменение мгновенно отражается у всех участников.

by jcusch • 08 августа 2025 г. в 05:45 • 418 points

ОригиналHN

#linear#local-first#websocket#graphql#postgresql#electric-sql#powersync#jazz#zod#crdt

Комментарии (197)

  • Участники обсуждают преимущества и недостатки подходов local-first (Zero, Electric, Jazz, CRDT, PouchDB, Turso и др.).
  • Ключевые плюсы: мгновенный UX, офлайн-работа, упрощённая синхронизация через запросы (Zero) и отсутствие конфликтов (CRDT).
  • Минусы: рост данных, проблемы разрешения конфликтов, сложность прав и миграций, ограниченная поддержка SSR-ценящих разработчиков.
  • Некоторые считают, что SSR всё ещё важен для первой загрузки, но не решает офлайн/коллаборацию.
  • Подводный камень: большинство инструментов заточены под веб, хотя мобильные сценарии офлайна выглядят более естественными.