Automerge: A library of data structures for building collaborative applications
Automerge is a CRDT library for collaborative apps, enabling conflict-free merging of changes across devices without a central server. It supports multiple network protocols and aims to enhance local-first software development.
Read original articleAutomerge is a Conflict-Free Replicated Data Type (CRDT) library designed for creating collaborative applications. It enables automatic merging of concurrent changes made on different devices without the need for a central server. The library supports various network protocols such as client-server, peer-to-peer, or local connections, as well as unidirectional messaging like sending Automerge files via email or storing them on a file server. Automerge is implemented in JavaScript and Rust, with FFI bindings available for platforms like iOS, Electron, Chrome, Safari, Edge, and Firefox. The library aims to facilitate the development of local-first software by providing a versatile and network-agnostic solution for handling data synchronization in distributed systems.
Related
Local First, Forever
Local-first software emphasizes storing data on the user's device, occasionally syncing with the internet. Benefits include data control, but challenges like syncing between devices and company reliability exist. Using cloud services like Dropbox for syncing, including CRDT for conflict handling, is recommended for simplicity and reliability.
Show HN: Triplit – Open-source syncing database that runs on server and client
The GitHub URL provides details on `@changesets/cli`, a tool for versioning and publishing code in multi-package and single-package repositories. Full documentation and common questions are accessible in their repository.
A Better Merge Workflow with Jujutsu
A new merge workflow using Jujutsu, a modern VCS compatible with Git, introduces The Austin™ Mega Merge Strategy®. It simplifies merge commits, amending commits, and selecting commits efficiently, enhancing collaboration and code review processes with advanced commit graph manipulation.
Sublime Merge
Sublime Merge, a Git client by Sublime Text creators, excels in speed, staging options, syntax highlighting, and conflict resolution. Users appreciate its efficiency, simplicity, and seamless GUI to command line transitions.
- Potential applications in digital audio workstations (DAWs) for collaborative tools.
- Comparison with Yjs and inquiries about user preferences for local-first software.
- Privacy benefits of local-first design principles and concerns about centralized server-side storage.
- Mentions of related projects like Pigeon, which focuses on real-time collaboration.
- Resources and tools built with Automerge, such as Automerge Jumpstart and IndexedDB integration.
A boilerplate including user authentication & authorization
Tech: Automerge, tRPC, Prisma and deployment on fly.io and vercel.com Bonus: includes explanation videos on the website
I love the idea of "local first software" https://www.inkandswitch.com/local-first/
If you have a web client that only does on-client data storage, you're not dependent on centralized server-side storage for persistence (which is the main privacy-loss hazard).
The problem is that the app host still has all the technological freedom to not honor their privacy agreement, and there don't seem to be backstops to that behavior in browsers.
It would be great if programs were collaborative out of the box.
> While Automerge optimizes for working offline and merging changes periodically, Pigeon is optimized for online real-time collaboration.
Related
Local First, Forever
Local-first software emphasizes storing data on the user's device, occasionally syncing with the internet. Benefits include data control, but challenges like syncing between devices and company reliability exist. Using cloud services like Dropbox for syncing, including CRDT for conflict handling, is recommended for simplicity and reliability.
Show HN: Triplit – Open-source syncing database that runs on server and client
The GitHub URL provides details on `@changesets/cli`, a tool for versioning and publishing code in multi-package and single-package repositories. Full documentation and common questions are accessible in their repository.
A Better Merge Workflow with Jujutsu
A new merge workflow using Jujutsu, a modern VCS compatible with Git, introduces The Austin™ Mega Merge Strategy®. It simplifies merge commits, amending commits, and selecting commits efficiently, enhancing collaboration and code review processes with advanced commit graph manipulation.
Sublime Merge
Sublime Merge, a Git client by Sublime Text creators, excels in speed, staging options, syntax highlighting, and conflict resolution. Users appreciate its efficiency, simplicity, and seamless GUI to command line transitions.