#422: Cardboard Software

POV view of concrete woodworking shop floor, scabs of old gray tile with pink flower ornaments.
Freedom Dreams, Detroit, MI (March 2024)

A huge thank you for all the support so far for Bebop. This week I’ve been happily answering feedback emails and posts on Threads and Mastodon, and David Pierce interviewed me for the The Verge’s Installer newsletter (*waves to new readers*). Click through to see my phone’s Home and Lock screens, plus a few media recommendations.

My friends over at Good Enough, makers of new-kid-on-the-blogging-platform-block Pika, also gave the app a nice shout-out on their studio newsletter – thanks guys!

While working on Bebop, I came across Geoffrey Litt’s post detailing how he used GPT-4 to build a translation interface ahead of a trip to Japan. The post is a worthwhile (and mostly non-technical) read, and mirrors large swaths of my own experience. It’s fun to see all the iterations he makes along the way – I love a good documentarian!

Litt favors the term malleable software for what’s long been a dream of computing: to enable non-programmers to modify their software tools to better fit their needs, to blur the line between user and creator. While GPT isn’t quite to that level (yet), what it has done already is make viable for programmers (even occasional, need-a-refresher-every-few-years ones like myself) projects that previously weren’t.

They’re the intimate, personal projects that you’d build for yourself or a small group of people – if only you had the time. Litt cites Robin’s now-classic lab newsletter on how an app can be a home-cooked meal; these apps need not scale to a billion users, need not follow the commercial-kitchen logic of social media giants. They can be made for kicks, they can be a way to learn.

After these past months working on Bebop, I realized that there’s even more to it than intimacy. There’s also ephemerality. Meals end! Which is at least half of what makes them special. Their ending allows for experimentation, quick iteration. Every home kitchen is also a test kitchen.

I’m starting to belabor the analogy so let me jump to a different one: AI/Large Language Models generate code, but that code is of a slightly different material than human-written code. This material is more ephemeral, malleable, workable, disposable – if only because we’re less attached to it. And when I think of all these traits, one real-world material comes to mind: cardboard.

Long-time Sunday letter readers might know that I’m a fan of cardboard for physical mock-ups. You can use it to figure out the size and shape of a cabinet, a window. You can rip it apart and put it back together with little more than tape and a utility knife. It’s close enough to wood that you can functionally test big design moves – and even structure and stability – before committing to a final build.

And just like a cardboard table is an actual table, cardboard software is software. It’s an actual app. Which is distinctly different from typical interface-design tools that only simulate real-world behavior in a virtual environment. It’s the difference between physically present at a building site and working with a contextless 3D model of that building.

In some cases, all you need is the cardboard. Alongside Bebop, I actually built two other apps, one of which I scrapped because it didn’t fit into my life the way I’d thought it might. And that was fine, because that was the whole point of making a prototype.

My initial Bebop prototype, on the other hand, convinced me right away that it was worth spending more time on. I then set about replacing the cardboard with sturdier materials. The overall form isn’t much different from the original, but the underlying code and the smaller design details are. (The third app? Still TBD … )

I have some more thoughts (mostly questions) about how LLMs might help collaborative creation. Might they make it more fun to make apps together? Might we be able to more easily pass an app back and forth, a kind of software version of an exquisite corpse?

But let me end this week by adding, to Robin’s and Geoffrey’s, a musing of my own: An app can be a home-cooked meal, and it can also be a handmade chair.