Sync is still an unsolved problem. The solutions that claim to do it aren't very satisfactory.
Fully-generic character-level textual sync is an unsolved problem (and likely, always will be). That's also not typically the best way to sync one's concrete data models, and if your data has any sort of structure, you can likely produce a merge operation that works Well Enough™ in practice
What is Local first development
11–20 of 56 posts
Re: What is Local first development
#12> Effortless Collaboration: The app supports easy collaboration, even in offline scenarios. mmm, yes, i see
Re: What is Local first development
#13> Effortless Collaboration: The app supports easy collaboration, even in offline scenarios. mmm, yes, i see
Re: What is Local first development
#14> Effortless Collaboration: The app supports easy collaboration, even in offline scenarios. mmm, yes, i see
The author clearly is referring to cloud apps that require one to be online with their collaborator to edit. The alternative is a locally encrypted self-congratulated neural mesh network where one computes their own inputs to the hard drive.
Re: What is Local first development
#15> Picture using these apps offline with automatic synchronization when you’re back online. This is the essence of local-first web development – a revolutionary approach that puts users in control of their digital experience. I had to laugh very hard at the "revolutionary approach". How is it revolutionary, if software was developed "local-first" for decades? Techbros really do come up with the oldest ideas and call t…
I laugh (maniacally) every time I need to change a jinja template generating a nightmarish yaml and remember the glory days of xml with affection. Revolutions always have been the young one's business for a reason, I guess.
Its only issue was that it was a massive pain to type by hand and no good GUI editors really emerged.
And some developers didn't understand the format and shoved stuff into attributes that should've been elements and vice versa.
Re: What is Local first development
#16Sync is still an unsolved problem. The solutions that claim to do it aren't very satisfactory.
Semantic sync (for example when 2 people have modified a draft of a novel and want to sync): how to auto sync both versions so the resulting text makes sense and has no duplicates, is indeed much harder, and requires manual revisions (like git revisions), possibly with LLM suggestions.
Re: What is Local first development
#17Sync is still an unsolved problem. The solutions that claim to do it aren't very satisfactory.
Reliable Sync from a syntactic (e.g. rich text) or data structure level is possible already with CRDTs, there are many excellent solutions (y.js, automerge etc.). Semantic sync (for example when 2 people have modified a draft of a novel and want to sync): how to auto sync both versions so the resulting text makes sense and has no duplicates, is indeed much harder, and requires manual revisions (like git revisions), p…
Re: What is Local first development
#18Earlier quoted context omitted.
I suppose "local-first development" is a misnomer. It's really about the syncing part. Currently we have traditional applications that write data locally and therefore don't require an internet connection to work, and we have online stuff that updates a shared state "live". The "revolutionary" part would be having both of those things. It's a surprisingly hard thing to do. The current state of the art here is git. So…
I can think of so many pieces of software that does that: having a local state, having a remote state, and keeping them synchronized whenever internet is available. It's how email apps work. That's how all cloud drives work, and Dropbox is more than a decade old at this point. It's how notes apps work. Etc. etc. Really can't see how this can be regarded as a recent idea.
Re: What is Local first development
#19> Picture using these apps offline with automatic synchronization when you’re back online. This is the essence of local-first web development – a revolutionary approach that puts users in control of their digital experience. I had to laugh very hard at the "revolutionary approach". How is it revolutionary, if software was developed "local-first" for decades? Techbros really do come up with the oldest ideas and call t…
Techbros really do come up with the oldest ideas and call them revolutionary.
Wait until they start vibe-coding these ideas.Re: What is Local first development
#20Also it's very hard to follow up bugs or other errors if users are often offline. I giess you can queue up errors being sent and so on but still. Syncing means that you probably have to have a complicated logic, especially if the data you are seeing can be modified by others. How do you solve merge conflicts?
I really like offline first web apps, but it is way harder and more expensive to build I think. For a startup it means more time before you can deploy your app and where I live there is pretty much fast internet everywhere so it kinda is solving an issue that very few customers will face.