Local-First Software: Reclaiming Ownership of Your Data

2025-07-06
Local-First Software: Reclaiming Ownership of Your Data

Cloud apps are convenient, but your data is entirely at the mercy of the service provider. This article explores "local-first" software, which stores data on your local device and uses technologies like CRDTs to enable real-time collaboration while retaining data ownership. The authors demonstrate the feasibility of local-first software with three prototype applications and highlight future research directions, including improving CRDT performance, refining user interfaces, and exploring decentralized networking.

Read more
Development

Malleable Software: The Future of Computing is User-Driven

2025-06-10
Malleable Software: The Future of Computing is User-Driven

This essay explores the concept of "malleable software," a software ecosystem where users can easily adapt tools to their needs. The authors argue that the rigidity of current software hinders user agency and creativity, illustrating the negative impact with examples from the medical profession. They contrast the malleability of physical environments with the inflexibility of digital ones, proposing three design patterns for achieving malleable software: a gentle slope of customizability, composable tools, and community creation. The authors detail several prototype systems their team has built, showcasing the potential of malleable software while acknowledging the challenges ahead, such as privacy, security, and business models. Ultimately, the essay calls for a more user-centric computing ecosystem.

Read more
Development

Sketchy Calendar: Bridging the Gap Between Digital and Analog

2025-05-23
Sketchy Calendar: Bridging the Gap Between Digital and Analog

This project explores a novel calendar concept—the Sketchy Calendar—that aims to combine the flexibility of paper calendars with the convenience of digital ones. Traditional digital calendars, while powerful, lack personalization and support for informal plans. Paper calendars, conversely, offer flexibility but lack the syncing and sharing capabilities of their digital counterparts. The Sketchy Calendar starts with a digital notebook, adding minimal structure to retain the personalized expression of paper calendars while achieving the convenience of digital features. This includes interconnected daily, weekly, and monthly views, integration of sketched annotations with formal calendar events, and exploring how shared calendars and calendar invites might work in such a semi-structured system. The project investigates how users can personalize their calendars with custom dynamic behavior, such as habit trackers or time trackers.

Read more

Keyhive Sync Protocol: Architecture and Implementation of Beelay

2025-04-20
Keyhive Sync Protocol: Architecture and Implementation of Beelay

This article details Beelay, a new sync protocol for the Keyhive project. Beelay, an RPC-based protocol, addresses shortcomings in Automerge's existing sync protocol when handling numerous documents and encrypted data. It uses Ed25519 keys for authentication and employs the RIBLT algorithm for efficient synchronization of the Keyhive membership graph and document collection. To prevent man-in-the-middle and replay attacks, Beelay incorporates the recipient's public key and timestamps in messages. Furthermore, Beelay introduces the Sedimentree protocol for efficient synchronization of Automerge document content.

Read more
Development Sync Protocol

Breaking the Constraint System: Solving Dynamic Media Challenges

2025-04-18
Breaking the Constraint System: Solving Dynamic Media Challenges

In phase two, the team successfully overcame challenges like "floatiness," "blow-ups," and poor performance in constraint systems. Techniques employed included propagating knowns, leveraging linear relationships to reduce solver variable dimensions, and clustering constraints into independently solvable clusters. These significantly improved the system's stability and performance. The team experimented with various solvers and optimized the system further by changing the way values were represented (e.g., using polar coordinates). These improvements enabled the construction of physically accurate mechanical structures and true bidirectional computation, laying a solid foundation for building dynamic media.

Read more

Ambsheets: Exploring Spreadsheet Uncertainty

2025-02-05
Ambsheets: Exploring Spreadsheet Uncertainty

Imagine a spreadsheet where a single cell can hold multiple values simultaneously. That's the core idea behind Ambsheets, a project extending traditional spreadsheets to handle 'amb values'—values representing multiple possibilities. This allows users to easily explore various scenarios, like budgeting for different car and apartment prices, without tedious restructuring. Unlike Excel's What-If Analysis, Ambsheets offers a cleaner interface and powerful automatic combination capabilities, efficiently managing multi-dimensional possibility spaces. Researchers are currently exploring Ambsheets' applications in filtering, visualization, and continuous distributions, aiming to develop it into a more powerful scenario exploration tool.

Read more
Development uncertainty