Exploring CRDTs, Automerge, and generic syncing servers with Martin Kleppmann. Discussing the future impact on local-first software. Transition from JSON CRDT paper to Auto Merge. Evolution and future enhancements of Auto Merge. Peer-to-peer syncing and transition to local-first software. Evolution of local-first technology and user control over data. Impact of local-first computing on niche use cases.
Automerge, developed by Martin Kleppmann, has advanced from handling JSON CRDTs to supporting rich text features, aiming for fast, mature, production-ready performance.
Future local first software envisions hybrid cloud and peer-to-peer connectivity, with generic syncing servers simplifying backend development for diverse applications.
Blue Sky network aligns with local-first principles by prioritizing user data ownership, but faces challenges in maintaining global views for social features.
Deep dives
Benefits of Local First Software
Local first software offers the economic value proposition of streamlining backend infrastructure by making data sync protocols and storage on servers efficient. This approach allows various types of apps, such as graphics apps, spreadsheets, and document editors, to utilize the same backend syncing service. The emphasis is on data ownership and user-centric data control, providing real-time collaboration and sync capabilities across devices.
Evolution and Impact of Auto Merge
Auto Merge, a library for conflict-free replicated data types (CRDTs), has significantly evolved over the years under Martin Kleppmann's guidance. Initially conceptualized as a JSON CRDT implementation, Auto Merge advanced to handle rich text features and complex data structures efficiently. The library has transitioned to newer implementations in Rust, aiming for fast, mature, production-ready performance. Ongoing developments focus on features like undo operations, move functionalities, and large collection syncing.
Future Vision for Local First Software
The future vision for local first software aims for a hybrid approach, combining cloud services and peer-to-peer connectivity for optimal user experiences. The goal is to have generic syncing services that reduce app developers' backend efforts by offering generic backend solutions for diverse local first applications. Auto Merge plays a key role in this vision, potentially evolving into an open standard protocol for data synchronization in local first software, aligning with the broader industry trend towards decentralized and user-centric data handling.
Comparison of Blue Sky and Local First Philosophies
Blue Sky and local first philosophies share the value of users controlling their data. Blue Sky, a social network, ensures that individual user data is stored in their own repository, like a Git repository, allowing easy migration between providers. However, the global views necessary in a social network for features like aggregated likes and replies present challenges unique to the network. In contrast, local first principles emphasize personal data ownership without the need for global index maintenance, making it more suitable for individual content editing.
The Shift Towards Local First and Challenges
The transition to local first principles faces hurdles in educational materials and existing infrastructures geared towards centralized cloud app development. Although local first offers cost-saving benefits and potential for niche app development, mainstream adoption is hindered by the dominance of cloud-based business models. Furthermore, defining business models for local first apps remains a challenge, questioning traditional software licensing approaches and prompting exploration of new subscription models to sustain local first development.
The guest of this episode, Martin Kleppmann, is one of the authors of the original local-first essay. Martin has been exploring local-first software and CRDTs for over 10 years, which has led to the creation of Automerge, which we discuss in depth in this episode. This episode is also exploring the ideas of generic sync servers and the impact this technology could have on local-first software in the future.