#3 – Geoffrey Litt: Malleable software, local state management & Riffle
Feb 14, 2024
auto_awesome
Guest Geoffrey Litt discusses malleable software and how relational databases can improve web apps and data ownership. They explore unifying UI states and app data, the concept of Riffle, trade-offs of using SQLite in TypeScript, schema management challenges, and introduce LiveStore as a solution.
Leveraging relational databases can improve web app development and data ownership.
The Cambria project explores enabling collaboration across diverse tools without requiring them to share the same data schema.
The Riffle project aims to simplify web app development by treating the app as a graph of database-driven queries, emphasizing fast synchronous reactivity and unifying state.
Deep dives
Simplifying Web App Development
The podcast episode explores the idea of simplifying the process of building web apps by leveraging the power of databases and the local first architecture. The speaker poses the question of whether it is possible to create an app that is fast, responsive, and easy to develop using these approaches. The goal is to cut through the complexity of modern web app development, making it simpler and more efficient. This involves expressing an app as a query, implementing fast synchronous reactivity, and unifying different types of state and app data in a single system.
The Motivation behind the Cambria Project
The episode features an interview with Jeffrey Litt, a researcher at Inken Switch, where he discusses the Cambria project. Cambria aims to address the challenge of wrangling data schemas in customizable software tools. The project explores enabling collaboration across diverse tools without requiring them to share the same data schema. It prototypes a live data translation system that allows different versions of apps to collaborate and share data representations. The project recognizes that this challenge appears in various contexts and holds back progress in interoperability and schema management for local first software.
Riffle: Bridging the Gap between Local and Cloud
The third main idea covered in the episode is the Riffle project. Riffle aims to create a personal data store with the ability to connect arbitrary tools to the stored data. It explores the concept of a powerful database designed to enable customization and malleability in software applications. The project focuses on simplifying the complexity of building web apps by treating the entire application as a graph of database-driven queries. Riffle also emphasizes the importance of fast synchronous reactivity and the unification of various types of state in one system. The ultimate goal is to provide a better user experience and developer experience in terms of speed, offline functionality, and reduced complexity.
The Importance of Separating State from React Components
Separating state from React components is crucial for better management of stateful applications. The speaker highlights that treating state as a separate entity from React components allows for more flexibility and improved reasoning about state in a reactive manner. This approach is not unique to React and has been explored in other web development libraries such as Mobx and Redux, emphasizing the recognition of the power of centralized state management outside of the UI tree.
Synchronous Reactivity and Simplifying UI Development
The podcast delves into the concept of synchronous reactivity in UI development and its value in simplifying application complexity. Traditional UI development often involves intricate reasoning about asynchronous states, loading states, and intermediate states. By embracing synchronous reactivity, developers can aim for immediate updates of the UI when a user interacts with it, without having to consider and manage multiple intermediate states. This approach is likened to the simplicity and responsiveness of a spreadsheet, where changes are instantly reflected in all derived views, reducing complexity and improving the user experience.
In this episode we talk about Geoffrey's background in malleable software and how relational databases can be leveraged to build better web apps and improve data ownership. A topic he extensively investigates through the Riffle research project.