Simon Willison’s Weblog

Subscribe
Atom feed for ink-and-switch

3 posts tagged “ink-and-switch”

2025

Malleable software (via) New, delightful manifesto from Ink & Switch.

In this essay, we envision malleable software: tools that users can reshape with minimal friction to suit their unique needs. Modification becomes routine, not exceptional. Adaptation happens at the point of use, not through engineering teams at distant corporations.

This is a beautifully written essay. I love the early framing of a comparison with physical environments such as the workshop of a luthier:

A guitar maker sets up their workshop with their saws, hammers, chisels and files arranged just so. They can also build new tools as needed to achieve the best result—a wooden block as a support, or a pair of pliers sanded down into the right shape. […] In the physical world, the act of crafting our environments comes naturally, because physical reality is malleable.

Most software doesn’t have these qualities, or requires deep programming skills in order to make customizations. The authors propose “malleable software” as a new form of computing ecosystem to “give users agency as co-creators”.

They mention plugin systems as one potential path, but highlight their failings:

However, plugin systems still can only edit an app's behavior in specific authorized ways. If there's not a plugin surface available for a given customization, the user is out of luck. (In fact, most applications have no plugin API at all, because it's hard work to design a good one!)

There are other problems too. Going from installing plugins to making one is a chasm that's hard to cross. And each app has its own distinct plugin system, making it typically impossible to share plugins across different apps.

Does AI-assisted coding help? Yes, to a certain extent, but there are still barriers that we need to tear down:

We think these developments hold exciting potential, and represent a good reason to pursue malleable software at this moment. But at the same time, AI code generation alone does not address all the barriers to malleability. Even if we presume that every computer user could perfectly write and edit code, that still leaves open some big questions.

How can users tweak the existing tools they've installed, rather than just making new siloed applications? How can AI-generated tools compose with one another to build up larger workflows over shared data? And how can we let users take more direct, precise control over tweaking their software, without needing to resort to AI coding for even the tiniest change?

They describe three key design patterns: a gentle slope from user to creator (as seen in Excel and HyperCard), focusing on tools, not apps (a kitchen knife, not an avocado slicer) and encouraging communal creation.

I found this note inspiring when considering my own work on Datasette:

Many successful customizable systems such as spreadsheets, HyperCard, Flash, Notion, and Airtable follow a similar pattern: a media editor with optional programmability. When an environment offers document editing with familiar direct manipulation interactions, users can get a lot done without needing to write any code.

The remainder of the essay focuses on Ink & Switch's own prototypes in this area, including Patchwork, Potluck and Embark.

Honestly, this is one of those pieces that defies attempts to summarize it. It's worth carving out some quality time to spend with this.

# 11th June 2025, 7:21 pm / ai-assisted-programming, ink-and-switch, generative-ai, local-first, ai, llms, geoffrey-litt, design-patterns

Ambsheets: Spreadsheets for exploring scenarios (via) Delightful UI experiment by Alex Warth and Geoffrey Litt at Ink & Switch, exploring the idea of a spreadsheet with cells that can handle multiple values at once, which they call "amb" (for "ambiguous") values. A single sheet can then be used to model multiple scenarios.

Here the cell for "Car" contains {500, 1200} and the cell for "Apartment" contains {2800, 3700, 5500}, resulting in a "Total" cell with six different values. Hovering over a calculated highlights its source values and a side panel shows a table of calculated results against those different combinations.

Spreadsheet showing budget items with values in cells: Column A shows Budget, Car, Apartment, Netflix, and TOTAL. Column B shows values including x̄ = 850 for Car with values 500 and 1,200; x̄ = 4,000 for Apartment with values 2,800, 3,700, and 5,500; Netflix shows 18; TOTAL row shows x̄ = 4,868 with values 3,318, 4,218, 6,018, 4,018, 4,918, and 6,718. Right side shows formula =sum(b3:b5), TABLE with aggregate avg dropdown, and STACKS visualization of the values.

Always interesting to see neat ideas like this presented on top of UIs that haven't had a significant upgrade in a very long time.

# 5th February 2025, 2:50 am / spreadsheets, geoffrey-litt, ui, ux, ink-and-switch

2024

Towards universal version control with Patchwork (via) Geoffrey Litt has been working with Ink & Switch exploring UI patterns for applying version control to different kinds of applications, with the goal of developing a set of conceptual primitives that can bring branching and version tracking to interfaces beyond just Git-style version control.

Geoffrey observes that basic version control is already a metaphor in a lot of software—the undo stack in Photoshop or suggestion mode in Google Docs are two examples.

Extending that is a great way to interact with AI tools as well—allowing for editorial bots that can suggest their own changes for you to accept, for example.

# 8th May 2024, 1:44 am / version-control, geoffrey-litt, generative-ai, ai, llms, ink-and-switch