Jess's Lab Notebook

Potluck: Dynamic Documents

Abstract

Today, personal computing is organized around apps: large prefabricated units of software developed by professionals for the masses, with few opportunities for customization. How might we reorient computing so that people can deeply tailor software to meet their unique needs?
We think a promising workflow is gradual enrichment from docs to apps: starting with regular text documents and incrementally evolving them into interactive software. In this essay, we present a research prototype called Potluck that supports this workflow. Users can create live searches that extract structured information from freeform text, write formulas that compute with that information, and then display the results as dynamic annotations in the original document.

Raw notes and reactions from reading the paper

I actually took a hard look at recipe apps over the last decade, including trying out Paprika, thinking about what it would look like to reimagine them

In short, apps enact rigid boundaries between tasks, and define rigid solutions within those boundaries.

Yes yes, preaching to the choir here.

I haven't gotten into the meat of it yet, but from playing with the prototypes, I think I can see where their going
as always very nicely laid out and easy to explore
the potluck demos in page are 👌

we can’t add new fields or scribble in the margins.

This is exactly why I use reMarkable for reading papers - I'd love for THESE NOTES to live in the margin of the doc as I'm reading it... but alas, scribbling. I'd like to do more of that

They write in physical cookbooks to leave their own annotations

It me! My cookbooks (and regular books) are all marked up with marginalia and cooking notes
the "data detector" concept is a helpful framing
Love the fantastical interface for plaintext extraction of event data
Slack does a similar thing for setting reminders and it's parser is really surprisingly good

People should have the ability to encode their own knowledge and personal micro-syntax into their tools.

On Regex
had a feeling this was going to turn into "just use regex." But the encapsulation / composability applied to regex is interesting. a bit like making really small, single-purpose functions

Each column computes a small pure expression that automatically re-evaluates reactively, and the current output is shown live in the table. We also provide built-in higher level functions for common high-level tasks that are cumbersome in JavaScript, like summing up a list of numbers. The result is that simple computations resemble small spreadsheet formulas, while the full power of JavaScript is still available to expert users.

Good design choice IMO
Been using fermat.ws a bit and natto.dev and I find myself tending to use Natto b/c it's just JavaScript rather than learning fermat's simplified language - even though it's simpler than JS!

Meanwhile, some properties of Potluck—at least in its current form—limit the kinds of applications that can be built. Text must serve as both the input mechanism for the data and the substrate for designing the user interface, which obviously rules out applications with non-textual data or rich user interfaces and visualizations.

😿

we found that it was sometimes useful to restrict a particular search to only certain regions of a document.

YES! I found the same thing in parsing my own Monthly Log for todos. I really only want to parse the "This Week" section for my Kanban board. I don't care about todos for past days/weeks.
In Potluck, application state lives in the text.
Yep - but I bet you're gonna want more than that...

one direction for future work could be to allow users to extend text documents with richer visual components.

Uh-huh. 😕

explore structured views in more detail

Yes! My bet is that you could get pretty far with just a few types of custom views - think about the ones that are in Notion / Airtable already: Calendar, Kanban, Timeline, Table, Grid

people could connect their text notes to existing structured views, including generic views like calendars.

This is exactly what I'm trying to do with my own explorations of Kanban.md (or whatever I'm gonna call it)

While we’ve shown these ideas in the context of a specific research prototype, we don’t necessarily think that a new “notes app” is the right way to implement them. Perhaps these concepts could be more powerfully applied at deeper levels of the stack.

Now there's a provocation... what would this look like at "deeper levels of the stack" - OS-level integration of these concepts wherever text lives.

In Potluck we’ve focused on text as the general-purpose medium for data, but the broader ideas could extend to other media as well. A recipe could be represented as a photo of a scribbled index card, processed with a combination of OCR and customized data detectors, with the annotations printed back onto the photo.

Excellent point that some will miss when reading this: anything that can be parsed as text, including web pages, PDFs, photos of text, AR glasses, etc can apply these techniques and principles.

Lack of ergonomics for daily usage

Playing around with the Potluck demo a bit. The biggest surprise to me was that I can't just open a .md or .txt file. I have to open a .json file with a specific format that's exported from Potluck.
Basically, it doesn't appear there's been a lot of thought given to the actual workflow of using this day-in, day-out.

  • import/export is the wrong mode
  • need to use the FileSystem API to continually save
  • also, this is about text documents: need to be able to get and edit the actual text, preferably in the text editor of my choice
  • shouldn't restrict the text editing to the browser
    I totally get that this is a research prototype, but in order to really learn about how people will use / write / modify programs like this, you actually have to use them, in anger, on a daily basis.
    I got quite a lot of joy out of using my little kanban.md prototype last week to "move things to done" and automagically update my text files.
    But I also bumped up against the limitations of the system, driving me to improve it.
Potluck - Dynamic documents as personal software
Interactive graph
On this page
Potluck: Dynamic Documents
Abstract
Raw notes and reactions from reading the paper
Lack of ergonomics for daily usage