Want to receive my work as I publish it?

    LAB NOTES
    LAB NOTES
    LN 009
    03•20•2021

    User-created item views

    In an operating system of the future that allows you to use any items such as emails, notes, tasks, and so on (LN 002) anywhere you want (LN 003, LN 004), and that renders those items in views you can swap out (LN 006), an important opportunity arises:

    What if users could modify, or even create, their item views, within the system?


    This is certainly not an unprecedented idea — HyperCard is effectively a cult classic, and plenty of other examples spring up as well.

    Consider: Should you decide you don’t quite like how something is displayed, you could simply change it. In this case, the user decides to increase the size of the title in their notes view and separate it from the date.

    Video showing a user modifying the view component for notes by moving the title to its own line, and making its font size bigger.

    But let’s take it even further:

    What if you could define new kinds of items, and views for those types?

    Let’s say you want to create a new item type for some data that you’d like displayed in some particular way. We’re going to lose the generic nature of these examples, so extrapolate to some kind of item you’d like to have around your own system in your own work.

    Consider: You have a handful of clients, and you want to represent them within your system as client items, with a view that renders those items in a specific way: with links to different lists for you to track different resources, and a field to represent the current status of the client or their project.

    Just like your system is home to the standard items like emails, notes, events, and more, it is now home to your client items as well. You can freely do with those what you can do with everything else: reference them in a note or in a todo list, add a note or todo list to them, and so on.

    Being able to create, and at any point in the future, modify, custom items alongside standard items, means you can be always in control of your own tooling.

    Consider: You’re learning guitar and want to keep all of your sheet music and guitar tabs in one place. Some are PDFs and some are links to various websites. You could create a new item for this type.

    Video showing a user assemble a view component for sheet music, including a text field for the song name, a text field for the artist name, and a collection for adding URLs and PDFs.

    Now that you have this “sheet music” item type, you can use it anywhere in your system.

    As shown here, you could create a collection of these items. Further, you could reference these items from anywhere else in your system: within a todo list, a date, a note, etc.

    Video showing a user navigate their collection of sheet music, selecting Bob Dylan's "Mr. Tambourine Man", which opens that item's card. The user then sees, and opens, the link to the song's guitar tabs.

    Further consider: Say you start learning the piano, too, and you want to keep your sheet music in this same collection, since you’re learning some of the songs on both guitar and piano.

    You could add a way to distinguish which items apply to guitar, which to piano, and which to both. This could make it possible for you to look at just the items that apply to one instrument when you’re practicing.

    Even if you had already been using this system of your own creation for years with just guitar tabs, you can easily modify it now to also support sheet music for piano.

    Video showing a user add a "tag field" component to the sheet music item view for identifying instruments, then previewing the component to test adding the instruments "Guitar" and "Piano" to the field.

    Adding a new field like this is easy to do even for standard types, too. Say you want to track emails not by the read or unread state, but by an incomplete or complete state to indicate to yourself whether you completed any actions involved.

    You could add such an element to the view for emails, and use it freely across your system. The OS automatically stores this metadata and keeps it around when you need to see it.

    The implications and further directions from this functionality run quite far, and will be explored in future lab notes. Sign up to receive them when they are published.


    Something spark a thought? Send me an email or come chat on Twitter.


    Want to receive my work as I publish it?