Due to ubiquitous connectivity and cheap availability of user devices from smartphones to desktops, applications supporting multi-device and collaborative use have become more common, and with the Corona pandemic this trend has tremendously accelerated.
While most of the distributed applications that we see nowadays are cloud-based, avoiding the cloud can lead to privacy and performance benefits for users and operational and cost benefits for companies and developers. Following this idea, Local-First Software runs and stores its data locally while still allowing collaboration, thus retaining the benefits of existing collaborative applications without depending on the cloud.
Many specific solutions already exist: operational transformation, client-side databases with eventually consistent replication based on CRDTs, and even synchronization as a service provided by commercial offerings, and a vast selection of UI design libraries.
However, these solutions are not integrated with the programming languages that applications are developed in. Language based solutions related to distribution such as type systems describing protocols, reliable actor runtimes, data processing, machine learning, etc., are designed and optimized for the cloud not for a loosely connected set of cooperating devices. This workshop aims at bringing the issue to the attention of the PL community, and accelerating the development of suitable solutions for this area.
Call for Talks and Papers
We are looking to advance the state of the art to program local-first software, that is, programs that are useful to a single user while offline, but allow sharing and collaboration when connected. Examples topics include:
- language constructs that enable offline use
- case studies that consider what works well and what is challenging using existing languages
- UI techniques that consider connectivity states
- users, identities, and trust as language constructs
- type systems to track what functionality is available offline
- easy to use APIs for (new and existing) efficient data synchronization algorithms
- dynamic placement techniques that scale down to a single offline device
Last years keynote talk also suggested nine problem areas we would like to see solutions for, that serve as examples for interesting problems to solve:
- Networking: Tech that still works in 40 years?
- Schemas: How to allow independent evolution?
- Security & Privacy: Whom to trust?
- Version Control: How to let users access and manage multiple versions?
- Indexing & Queries: How to scale local-first to more than what fits in memory?
- Decentralized Search: How to make non-replicated information accessible to everyone?
- Portable Compute: How to replicate – distribute – application execution?
- Code as (CRDT) Data: How to improve the collaborative coding experience?
- Programming Models: How everything fits together, and the core question of this workshop.
We encourage a range of contributions to facilitate exchange between academia and industry. Specifically, we are looking for:
- Talk proposals of at most 1 page summarizing:
- the content and scope
- the context (speaker, company, research group, larger project, etc.)
- include links to further info if available (an existing published paper, prior talks, project websites, etc.)
- Relevant in progress research papers:
- no format or page limit
- if the paper is longer than 8 pages: include a summary one or two key contributions/sections the reviewers should focus on
- these will receive reviews by the organizing committee focused on potential improvements
- there will be no officially published proceedings, but papers will be listed on the website if the authors agree
- no format or page limit
If accepted, authors of both types of submission are assigned a talk Slot. Expect talks to be scheduled for roughly 20 minutes + 10 minutes of questions and discussion (may change due to scheduling). In addition, submissions are published on the website.
If you have a contribution you consider relevant, but that does not fit the 20-minute talk style, please still submit your proposal! We are considering to offer poster demonstrations, lightning talks, and space for tool demonstrations in smaller groups (depending on the availability of suitable space at the venue) and would very much be interested to know if there is interest.
Use the submission link at the top of the right sidebar, if there is anything unclear, or you are unsure how your proposal could fit the workshop, feel free to email firstname.lastname@example.org – we are always interested in discussing interesting ideas!
For talk proposals, you may either upload a PDF, or put the proposal into the “abstract” field of the submission site.
For in progress papers of more than 8 pages, include the description of what the reviewers should focus on as part of the abstract.
Update: There unfortunately is no single place to fit all potential interested parties – while there will be a speaker dinner, we encourage participants to self-organize into smaller groups.
Tue 24 OctDisplayed time zone: Lisbon change
09:20 - 10:30
|Keynote: Feeling the Local-First Elephant: A Roadmap, Hidden Gems, and New Puzzles from the Field|
11:00 - 12:30
|Collaborative offline-first applications in Education|
|Local-first: experiments & lessons learned building TypeCell|
Yousef El-Dardiry TypeCell
|Proposal: Versioned Collaborative Documents|
Matthew Weidner Carnegie Mellon University
14:00 - 15:30
|Can local-first really scale at the edge?|
Carlos Baquero HASLab/INESC TEC & University of Minho
|Local-first at Actyx|
|Extending Automerge: Undo, Redo, and Move|
16:00 - 17:30
|How to Enforce and Verify Invariants in Weakly Consistent Databases|
|Local-First in Practice: Learnings of building a high-performance, local-first music app|
Johannes Schickling None
|MVC, MVCC and Causal Trees|
Victor Grishchenko Unaffiliated
|Mixed & Verified Consistency with Propel & ConOpY|