Submitted to the
Department of Electrical Engineering and Computer Science
on ,
in partial fulfillment of the requirements for the degree of
Doctor of Philosophy
A cornucopia of systems exist to facilitate web application creation, yet most are either too complex for novices, or too limited to cater to people’s diverse needs. This work explores avenues to better balance the tradeoffs between complexity and expressiveness.
A focus of this work is the Mavo language, a modular set of technologies that enables authors with basic HTML knowledge to rapidly transform a static HTML mockup into a fully-functional, persistent, data-driven web application. Mavo HTML makes schema creation implicit, and generates high fidelity direct manipulation interfaces for editing data. It provides reactive computation via Formula², a hierarchical reactive expression language for novices, and remote persistence via Madata, a design and protocol for a distributed authentication and storage ecosystem with a unified API. Lastly, it extends the reactive paradigm with data update actions, allowing users to add interactivity or automate repetitive tasks. We later explored exposing these concepts to end-users via Lifesheets, a domain-specific prototype visual app builder geared around one of the most common personal data management use cases: personal tracking.
Unlike platform-based “low-code/no-code” approaches,
extending open web technologies
provides universal, portable, decentralized solutions.
Our studies show novices quickly learn these technologies and feel empowered to create tools they never thought possible.
By lowering the barrier of web programming,
I envision a future where end-users feel empowered to create tools for their needs,
while maintaining agency over their data and its location,
in line with the Web’s original vision: This is for everyone
.