Essay from Ink & Switch.
Written by Geoffrey Litt, Paul Shen, Max Schoenig, and Paul Sonnentag.
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.
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.
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.