SPLASH 2026
Sun 4 - Fri 9 October 2026 Oakland, California, United States
co-located with SPLASH/ISSTA 2026

Building robust real-time collaborative applications — ``multi-user apps'' — is hard. State transitions that are trivial in the single-user case become surprisingly complex once concurrent participants are involved, often requiring custom interaction protocols and bespoke speculative execution and reconciliation mechanisms. Errors are harder to reproduce, and the application must still respond within milliseconds. AI coding agents do not yet handle these demands reliably.

In this paper, we present a novel way to develop multi-user apps. We employ a combination of a Functional Reactive Programming language called Renkon, which itself is a powerful language for building applications, and a network application framework called Croquet. We devised a program transformation that allows the same Renkon program to run as a single-user app or to utilize Croquet to run as a multi-user app without writing application-specific server-side code. This is done without losing the live programming capability of Renkon.

To demonstrate how well this approach works for a practical application, we applied it to a real-time interactive programming environment called Renkon-pad. We show that not only can we transform a single-user programming environment into a multi-user one, but also that the multi-user environment can be used to develop a multi-user app in a live programming manner. This experiment supports the idea that the transformation is applicable to general and complex programs, with the programmers’ intent in the original program preserved.