Local-first Conf and Unifying the Schema, Still
Exploring local-first concepts, evolving my thinking on schema, and diving into Composer at DXOS.
Local-first Conf and Unifying the Schema, Still
It's been about two months since my last newsletter update in which I discussed the work I was doing exploring the concept of schema and trying to assemble my thoughts into a singular article. Much to my surprise, I'm still working on that article. In my last newsletter, I was feeling quite confident:
I have an outline of the scoped-down article (happy to share if you'd like to see the in-progress work) and it's quite achievable.
So why no article yet? That prompt is a good springboard to talk about the last few months.
Writing in order to think
If you're thinking and not writing, you only think you're thinking. - Leslie Lamport
Over the past few months, the article has turned into an exercise in thinking through writing. Rather than report on "where things are today", my aspirations for the article are to write something more timeless which disseminates a generalizable insight that others, particularly builders of local-first apps and frameworks, can apply. This has put rather more weight on "the article", as I've come to call it, than is perhaps helpful: it needs to be clear, correct, useful.
Taking one idea very seriously:
— Jess Martin (@jessmartin) April 2, 2024
Software should only have to define the schema of data in a single place.
From that singular schema, all the other aspects of the software system should be able to derived: from the user interface all the way to the storage layer.
My thinking has refined over the months. I'm on the third complete rewrite of the article and I've gotten better at understanding and explaining it. I built a DXOS app to demo the ideas while we've been actively developing DXOS's schema system. I've talked to a half-dozen people about the article and the demo, and they've come back with more questions that I need to answer. The article is a moving target because my thinking is also a moving target. And that's a good thing.
The article will come, but in the mean-time I'm giving a lightning talk on Local-first Schema at the first Local-first Conference in Berlin in just a few days! In the last week or two I've shifted from working on an article to working on the talk, honing the talk track and pre-recording the demos (yes, it will be recorded and available online). The folks attending Local-first Conference include some of my favorite people on the planet; they're working on related problems and are genuinely smart, kind, fun folks. I can't wait.
(If you're going to be in Berlin on Wed-Fri of next week, reach out! I'd love to meet up in-person.)
Composer: An Extensible Local-first Application Runtime... Thingy
The other train of thought dominating my mind is Composer, DXOS's extensible, collaborative application environment. What, exactly, is Composer? We've been using Composer every day for the past few months to manage DXOS's documents and diagrams - basically anything that's not a GitHub Issue or Pull Request. We've been evolving the interface and improving performance in order to keep pace with our usage of it. But how do we describe it? And who exactly is this thing for?
We're still evolving how we talk about Composer, but one thing is for sure: Composer + DXOS is more compelling than Composer alone. When you stack Composer's big ideas on top of the big ideas in DXOS, it makes a pretty compelling environment. I look forward to showing you more of that over the coming months, but for now, here's a quick update on where Composer is today:
ICYMI: Stuff I've worked on
- My talk on unifying the schema with @effect/schema from Effect Days Vienna is now online. It captures my thinking on schema circa February 2024. I think the talk is quite fun, so I hope you enjoy it!
Recently Read
In Ambient co-presence, Maggie Appleton tries to help us expand our thinking about presence in apps. I agree with her sentiment that "the synchronous, multiplayer web is brand new, and the design space around it is still relatively unexplored." I started exploring these ideas in Collaborating with the Invisible. Matt Webb has written thoughtfully on this as well.
Andy Matuschak's In Praise of the Particular, and Other Lessons From 2023 mentions the mileage that he's gotten out of working closely with just a few individuals, building software tools that significantly augment their work, and then observe them using the tools. Counterintuitively, these 1-on-1 interactions have been more productive for his learning than his experience running quantitative studies.
Glimpses of the future
Y'all know I love me some standoff markup, so I could not be more excited about Iian Neill's work on an open-source, free standoff editor as a pluggable component. Standoff is not only a superior way to represent the rich text documents we currently use daily, it's also a superset of our existing editors–it offers features we don't currently have in any editor. It's more than an encoding. It's a new material. And Iian is the perfect person to birth a new editor that can show off the properties of this new material. To get a feel for what I'm excited about, here's one of Iian's interactive demos from a few years ago.