
Local-First Software (2019) - tosh
https://www.inkandswitch.com/local-first.html
======
oblib
This was submitted just a couple days ago and didn't get noticed. Good to see
it made the front page today.

I think the article drifts a bit far from "Local-First Software" but I learned
a lot about the issues dealing with real time collaboration.

I'm just about ready to release a new version of a web app I first released in
2002 that offers a Local-First option. That's been a goal of mine since I
first released it. indexedDB works, but that's a pretty awful option for the
app I'm speaking of.

I'm using CouchDB to do this, and it requires the user install CouchDB on
their desktop PC. That's a pretty big hurdle, but it's actually very easy to
do. I think the hard part will be convincing users it's worth their effort.

~~~
darkhorse13
Why not use PouchDB and have that sync up with your main CouchDB server? It
seemed like a very powerful paradigm to me, so I am always curious why it did
not catch on.

~~~
bhl
There’s also RxDB which builds on top of PouchDb: it has a graphql plugin so
you can have real-time data as well. I’m using it experimentally with
Hasura+Postgres. The only drawback is that I can’t figure out a UI that
indicates which documents are saved offline for a user.

------
bfuclusion
The problem with "local" (where local is maybe not even where you are, but
where your base is) storage of data is that it's a pain in the butt.
Maintaining hardware, doing backups, etc is fun for me as a hobbyist but is a
drag for people who don't like that thing. Cloud took off because it's easy,
not because it's better.

------
jasode
Fyi... the keyword "CRDT" appears 50 times in the article.

Some past HN threads mentioning CRDT did not fare as well as OT (Operational
Transform):

[https://news.ycombinator.com/item?id=19886883](https://news.ycombinator.com/item?id=19886883)

[https://news.ycombinator.com/item?id=19847622](https://news.ycombinator.com/item?id=19847622)

~~~
hobo_mark
Because CRDTs are one of Martin Kleppmann's group main research interests (and
a key mechanism in achieving local-first applications that synchronize
seamlessly).

Just a few weeks ago he released a video that explains CRDTs in a bit more
detail:

[https://news.ycombinator.com/item?id=23802208](https://news.ycombinator.com/item?id=23802208)

~~~
wrnr
Yea sure, CRDTs interesting and all, but what if it mentioned blackchain 50
times? Research groups often worship a particular technology for some
imaginary practical applications. Take something like collaborative editing,
It's "straightforward" to have a people edit a local document and then use a
server as the central point of authority, but that is not an open academic
question so people want to do it without the central server. Marijn Haverbeke
has made this point more eleganty [1].

[1] [https://marijnhaverbeke.nl/blog/collaborative-
editing.html](https://marijnhaverbeke.nl/blog/collaborative-editing.html)

