Want to receive my work as I publish it?

LN 001

Composing application interfaces

In order to build the many experiments for my research on the future of personal computing, and the subsequent demos for these Lab Notes, I needed a way to build much faster than was presently possible (the work simply won’t work if it takes weeks or months to scale up each experiment; the learning has to be faster than that).

Here’s what I’ve been building:

Conductor framework - first demo


How it works

The framework explores a new way of writing apps through composition in place of data piping.

It is made up of interface components built in React that you use very much like you’d use HTML to construct a website.

But the real magic is when you give a component an itemId attribute: the framework automatically handles syncing its value to the server, and reloading it later, wherever that itemId appears.

You don’t have to worry about piping data around your app, syncing, binding state to interface components, etc. You just construct your app.

You can combine the fundamental building blocks provided by the framework to create increasingly sophisticated interfaces. And as you combine the pieces, the framework automatically handles everything else — you just give out the itemIds and you’re set.

The hope is to create a pit of success by making it possible to write entire apps in the same way you’d write a simple webpage in HTML, using an expressive set of fundamentals to build complete applications.

That’s not to say you can’t go beyond composition — it does expose the hooks for you to do custom things with the framework if you’d like to, while still handling all of the rote complexity.

This framwork allows me to build and rebuild, a critical process for making software great, since quantity is the journey to quality.

I’ll dive more into it in the coming weeks, because it exposes some pretty interesting possibilities and consequences.

Something spark a thought? Email me, or come chat on Mastodon or on Twitter.

« Previous: LN 000


Next: LN 002 »

Want to receive my work as I publish it?