Skip to content

Start typing to search products, founders and collections.

↑↓ navigate openesc closeFull search →
Driftwood logo

Driftwood

VerifiedOpen sourceFeatured

A local-first sync engine you can drop into an app you already shipped

Launched Week 33, 202655k viewsOpen source
1.5kVisit site
Driftwood interface — main workspace
  • Driftwood interface — detail view
  • Driftwood interface — settings

About Driftwood

Driftwood handles offline queues, conflict resolution and live schema migration so your app works on a plane and reconciles cleanly when it lands. Open source, framework-agnostic, and designed to be added to an existing data model rather than requiring a rewrite around it.

Features

  • Retrofit, do not rewrite

    Attaches to an existing schema instead of demanding you adopt a new data model.

  • Per-field conflict strategy

    LWW, CRDT merge or your own callback — chosen per field, not per database.

  • Live schema migration

    Forward and backward transforms so old and new app versions coexist safely.

  • Partial sync

    Clients hold the subset they need. Datasets are not capped by device storage.

  • Durable offline queue

    Ordered, idempotent replay that survives crashes and force-quits.

  • Framework agnostic

    SQLite, IndexedDB and Postgres adapters. No opinion about your UI layer.

The story

1 min read

Sync is the hard part of local-first

Local-first software gets described as a UX philosophy. Operationally it is a distributed systems problem: two replicas, unreliable connectivity, concurrent edits, and schema versions that are live at the same time because users do not update apps on your schedule.

Driftwood is the part nobody enjoys writing.

What it handles

  • Offline queues with durable, ordered, idempotent replay.
  • Conflict resolution with per-field strategies — last-writer-wins where it is fine, CRDT merge where it is not, and an explicit callback where only your domain knows the answer.
  • Live schema migration across app versions running simultaneously, with forward and backward transforms.
  • Partial sync, so a client holds the subset it needs rather than the whole dataset.

Designed for retrofit

Most sync engines want to own your data model. Driftwood attaches to one you already have: you describe your tables, mark the fields whose conflict behaviour is not obvious, and it takes over the transport.

That constraint made the internals harder and adoption dramatically easier. Retrofitting is the actual use case — greenfield local-first apps are rare.

Status

Driftwood is 1.x and used in production by a handful of teams, including two on this site. The wire protocol is stable and versioned. Storage adapters exist for SQLite, IndexedDB and Postgres.

Changelog

  1. v1.4

    Partial sync goes GA

    Subset subscriptions are now stable, with server-side authorisation on the subscription predicate so a client cannot widen its own scope.

  2. v1.3

    Backward transforms

    Schema migrations can now be applied in reverse, which makes staged rollouts safe to abort.

Frequently asked questions

Do I have to rewrite my data model?

No — that is the central design constraint. You describe your existing tables and annotate the fields whose conflict behaviour is ambiguous. Everything else is inferred.

How are conflicts resolved?

Per field. Last-writer-wins is the default for scalars, CRDT merge is available for text and sets, and you can supply a resolver function where only your domain logic knows the right answer.

What happens when two app versions are live at once?

Driftwood versions the schema and carries forward and backward transforms, so a client on the old version can still read and write documents written by the new one.

Is the hosted relay required?

No. The relay is a convenience for teams that do not want to operate a WebSocket tier. The protocol is documented and you can run your own.

What is the licence?

MIT, including the relay. There is no open-core split.

Driftwood alternatives

Similar products worth comparing before you commit.

  • Observability a two-person team can afford to run and actually understand

    Different layer of the stack; both self-hostable infrastructure.

    Developer ToolsOpen source
  • A self-hosted CRM for consultancies that will not put client data in the cloud

    SaaSOpen source

Driftwood compared

Works with

Discussion203

Markdown supported. Be useful, not promotional.

Related products

Ranked by shared categories, tags and explicit alternative relationships.

  • A self-hosted CRM for consultancies that will not put client data in the cloud

    SaaSOpen source
  • Revenue analytics that tells you what changed instead of showing forty charts

    SaaSSubscription