Anselm Eickhoff, the innovative creator behind Jazz Tools, discusses his journey of developing a framework for multiplayer, local-first applications. He shares insights on how his frustration with app development led to a focus on user-friendly design and robust data encryption for privacy. The conversation dives into the revolutionary application of cryptography, co-values for collaboration, and the complexities of schema migrations. Anselm also highlights how Jazz Tools aims to streamline development, reduce complexity, and enhance offline capabilities.
Anselm Eickhoff emphasizes the need for a universal framework like Jazz Tools to support multiplayer and offline app capabilities.
Jazz Tools prioritizes security by ensuring user data ownership through public key cryptography and client-side encryption.
The framework's unique data structures, co-values, facilitate efficient collaborative data management, enhancing user interactions and app development agility.
Deep dives
Introduction to Jazz Tools
The creator of Jazz Tools discusses the inspiration behind the framework, initially sparked by his efforts on a Notion-like app named Garden. He realized a need for better infrastructure that inherently supports multiplayer functionality along with offline capabilities. The desire to create a universal framework for building apps emerged from the realization that existing technology struggled with these tasks. This led him to explore concepts like local-first development, which ultimately shaped the foundational principles of Jazz Tools.
Security and User Empowerment
A core focus of Jazz is on security, particularly user data ownership. By utilizing public key cryptography alongside CRDTs (Conflict-free Replicated Data Types), Jazz ensures that even when synced through a server, users maintain control over their data. With data encrypted client-side, the cloud service does not access the sensitive information, enhancing user trust. This security architecture also allows developers to omit reliance on backend data management, promoting simplicity in app design.
Developing with Jazz: Ease and Functionality
Using Jazz enables developers to build applications without the need for traditional backends or databases, allowing for quicker and more agile development. By defining a data model akin to GraphQL schemas, developers can create objects and permissions directly on the client side. The framework supports real-time data synchronization, making offline-first functionalities seamless. This novel architecture allows for rich user experiences, as developers can automatically build collaborative features into their applications.
Advanced Data Structures in Jazz
Jazz introduces unique data structures known as co-values, which facilitate dynamic collaborative data management. Co-maps and co-lists are central to the framework, enabling efficient handling of user-generated data, while also supporting rich text and binary data. Each co-value maintains a history of changes, allowing for time-travel capabilities and enhanced collaboration. This efficient state management not only simplifies app development but also strengthens user interactions within the applications built on Jazz.
Future Prospects and Community Impact
Looking ahead, Jazz aims to expand its utility in mobile development and enhance user experience with sophisticated data-sharing features. By establishing an open standard for the underlying protocol, co-JSON, Jazz can broaden its reach and usability across various programming environments. The project also seeks to empower developers by crafting useful analytics and monitoring tools that enhance app performance without compromising user privacy. Ultimately, Jazz aspires to blend innovative technical solutions with concrete benefits for the development community.
This week we talk to Anselm Eickhoff, a creator of Jazz Tools. Jazz is a reimagining of what the client server boundary is and how it can be used to build local first apps. Join us as we explore the next generation of local first tooling.