logoalt Hacker News

davepecklast Saturday at 3:50 PM9 repliesview on HN

In theory, I love the local-first mode of building. It aligns well with “small tech” philosophy where privacy and data ownership are fundamental.

In practice, it’s hard! You’re effectively responsible for building a sync engine, handling conflict resolution, managing schema migration, etc.

This said, tools for local-first software development seem to have improved in the past couple years. I keep my eye on jazz.tools, electric-sql, and Rocicorp’s Zero. Are there others?


Replies

rzzztlast Saturday at 4:12 PM

CouchDB on the server and PouchDB on the client was an attempt at making such an environment:

- https://couchdb.apache.org/

- https://pouchdb.com/

Also some more pondering on local-first application development from a "few" (~10) years back can be found here: https://unhosted.org/

show 3 replies
ofrzetalast Saturday at 4:13 PM

Do you know that website? https://www.localfirst.fm

EDIT: actually I wanted to point to the "landscape" link (in the top menu) but that URL is quite unergonomic.

show 1 reply
swsieberyesterday at 12:00 AM

I've been using instantdb in anger for the past month or so for a side project of mine. I'm building a personal budget app.

I should probably write a blog post, but I will say that I investigated power sync, electricSQL, livestore and powersync before. I briefly looked at jazz tools but wanted something a bit more structured.

I'm pretty impressed this far. I've actually been writing it with Vue and a community library. Permissions were a bit tricky, but once I figured it out it was simple. And I like their magic email login. And I like their dashboard/reply, but there are a few big changes I would make there to make it less fiddly.

I love that it's open source, and that if I want to, I could self host it.

As for the other options:

- jazz wasn't structured enough

- livestore came off as too fiddly with the event store, but it was appealing. That the dev tools are payealled was disappointing, but understandable

- electriSQL really only provided half a solution (read, not the write model

- couchDB / pouchDB wasn't structured enough for me, and I wanted better cross document support than was obvious / baked in.

- did not investigate zero really

show 2 replies
zdragnarlast Saturday at 4:04 PM

I think I saw someone point out automerge not long ago:

https://automerge.org/

Rust and JavaScript implementations, a handful of network strategies. It doesn't come with the free or paid offering that jazz.tools does, but it's pretty nice.

show 1 reply
samwillislast Saturday at 6:13 PM

Along with the others mentioned, it's worth highlighting Yjs. It's an incredible CRDT toolkit that enables many of the realtime and async collaborative editing experience you want from local-first software.

https://yjs.dev/

show 1 reply
3036e4last Saturday at 4:23 PM

I use local software and sync files using git or sometimes fossil (both work fine in Android with termux for instance, for stuff In want to access on my phone). I don't host servers or use any special software that requires syncing data in special ways.

jonotimelast Saturday at 9:58 PM

There are a bunch and quite a breadth of different solutions/takes on the problem.

Here is a good recap of the current players. https://www.localfirst.fm/landscape

sgtlast Saturday at 5:31 PM

There's also PowerSync: https://www.powersync.com/

It's also open source and has bindings for Dart, JS, Swift, C#, Kotlin, etc

ochibalast Saturday at 5:17 PM

This site also has a directory of devtools: https://lofi.so/