Jess's Lab Notebook
Lab Notebook
My Talks
Collaborating With The Invisible Talk at replit
Effect Days 2024 Talk Track - Cleaned Up
Effect Days 2024 Vienna DXOS Talk
Friendship from the Proverbs
Giving Talk
Lessons Learned from Three Years of Applied Research
Living in Community from the Proverbs
Local-first Software Architecture @ Glide Apps
Local-first Web Dev Talk Track
Men's Breakfast - Sermon on the Mount - Giving
My Relevance Last Lecture - 3 Things I've Learned at Relevance
Product Management Presentation
Talk Ideas
Technical Debt Talk
The Last Mile of Local-first
You Are The Product Talk
My Writings
Readwise
weekly-newsletters
Jess's Lab Notebook
The Last Mile of Local-First
Hi I'm Jess Martin
Future of computing - app interoperability
Local-first software can enable this
a few problems yet to solve...
A Local-first Scorecard → Just completed this landscape so I have a good sense of the progress
Six years the article... we have solved many tech challenges
Let's take a look at our progress on the Scorecard:
No spinners: ✓
Software has gotten faster!
Multi-device is common: ✓
Sync engines are amazing
Network optional: -
Still a lot of work to do to make P2P fully reliable and easy, but it's getting better
Seamless collaboration: ✓
Lots of hard work on CRDTs and other methods of reconciliation
Security and privacy by default: -
Some good talks on this!
You retain ownership & control: ?
The Long Now: ?
one solution to the User-owned data and Long Now: file formats
How might we solve these things with file formats?
The last five years of advances have largely been solved by frameworks and libraries and a few intrepid software companies
Pioneering, hard work!
Here's an architecture diagram of what this looks like today:
The "Last Mile" of local-first will have to be solved by application developers.
<show image of telephone lines, tell story of the internet>
We are getting the data all the way to the device, but not able to access it
But just because data is on the device doesn't mean users can access it
Especially if the data stays trapped in proprietary formats
Challenge for local-first app developers: levels of support
This talk will be a challenge to app developers. I'm going to provide a set of levels to grade yourself on the support you provide to your users.
LEVEL 1: Export to flat file formats
Just choose open formats
markdown, CSV, etc → your app domain
So many available - and you don't have to choose just one!
Sometimes, you have to invent one...
Obsidian is well known for file > app
Introduced a canvas feature - there's no file format
JSON Canvas
At the time, Orion Reed and I were doing canvas work
DXOS - TLDraw - Doing export to file work, interop, etc
Tried JSON Canvas - found it was too limiting to express the TLDraw, and other, infinite canvases
Local-first Conf last year we wrote the version of a new spec & minimal implementation to handle many canvases
Will come back to that story...
LEVEL 2: Continuous export
Think of this as a continuous projection of the app's data to an external source
Every write in the app causes a re-render of the projection
Doesn't handle reads - just overwrites
We already mentioned Obsidian
Kanban.md demo
Doesn't have to be files!
Linear → Google Sheets DEMO
Build charts, run calculations, etc
LEVEL 3: Bi-directional sync
Much harder!
Obsidian implements this via the file system
Kanban.md can write, too!
So satisfying to drag a card over!
But now we are back in the land of open research problems
Substrate matters...
File system? CLI agent? Desktop app?
Particularly challenging for real-time collaboration, as changes aren't automatically available as "diffs" or "patches"
And merging of offline edits
But amazing things are possible if you do the work...
Show a Obsidian Canvas ⟷ TLDraw demo powered by OCIF
Collaborate
across
applications!
What is powering this?
So, resuming my story... we kept working on the infinite canvas file format...
The Open Canvas Working Group met 25 times over the past year
Git issues
Input from 15 canvases
Spec versions
3 implementations
New collaborators
Happy to announce today the
OCIF 1.0 Candidate Recommendation
We are following the W3C process
Candidate Recommendation means:
We feel the spec captures the majority of cases and is relatively complete and stable
And now it's ready to be implemented
Two app that have implemented already and we have a handful of demos
But
the spec will still change as we seek to incorporate feedback from implementers
Feel really good about the spec
If you are working on a canvas, consider implementing import/export
You can implement in our "tools" package which will give users access
Through the CLI tool
And through the exporter website
LEVEL 4: An added benefit/perk (?) AI understands open formats
A few quick demos of AI working with OCIF
AI explaining a canvas
AI writing a canvas based on a prompt, etc...
Use the local TLDraw instance & the OCIF file watcher...
To wrap up...
App developers will have take us the last mile..
Reiterate Last mile story - show the phone lines again
Show score card again
Encourage us to give users control and solve for the Long Now!
The Last Mile of Local-first
Not found
This page does not exist
Interactive graph
On this page
The Last Mile of Local-First
Challenge for local-first app developers: levels of support
LEVEL 1: Export to flat file formats
LEVEL 2: Continuous export
LEVEL 3: Bi-directional sync
LEVEL 4: An added benefit/perk (?) AI understands open formats
To wrap up...