I'm excited to share the first public notes about the project that and I have been working on for the past 6 months!
Building apps is too hard. We think that the solution involves *databases*.
... what?
Conversation
This is probably my inner database engineer talking, but... when I look at most apps—Mail, Photos, iTunes—I see a pretty thin layer of well-chosen queries on a database.
Despite that, building an actual app is hard. I'm a pretty decent programmer and it's too hard for me.
read image description
ALT
1
10
Even more strangely, I whip up quick command line scripts and graphs all the time, in the course of my normal research.
Why is building apps so much harder?
1
5
We have a weird theory that a ton of the essential complexity in building apps comes from *managing state*. The user does something: what needs to change?
My quick command line scripts are stateless, so of course they're easy to build/test/modify.
1
11
It turns out that people have spent 50 years building systems that specialize in managing state: they're called databases!
So that was our question: what would it feel like to try to build an iTunes clone as a database query?
1
7
This turns out to be really hard, for mostly technical reasons. We hit all kinds of weird problems just gluing SQLite to React, never mind something more ambitious.
But it works! We built a music app (mostly, conceptually) as a pile of inter-related SQL queries!
1
6
This was one of those projects that produced more questions than answers. But we found some cool stuff that we wanted to share:
- local databases are crazy fast!!
- queries make debugging way easier
- noun-based interop feels like living in the future
1
12
We're still in the early days of this project, but a really cool picture is starting to emerge.
What if an entire app, from the event log to the pixels on the screen, is just one giant query?
read image description
ALT
2
17
On a personal note, I've enjoyed a tremendously productive collaboration with , , and Daniel Jackson.
Especially when the world is falling apart 😢, I'm so glad to be working on this stuff with really talented, caring people.
Replying to
Geoffrey and I owe very special thank you to co-author for being our intrepid "alpha tester". 🙏
If you've never used a framework that isn't ready yet... you don't know his pain. 🙃 Thanks for putting up with our constantly evolving, often-broken code!
1
7
I'll be giving a talk about our project at on April 29! Hope to get lots of feedback there :-)
The schedule looks epic: if you liked this essay, you should definitely be there!
Quote Tweet
The HYTRADBOI schedule and tickets are up now at hytradboi.com.
I'm really excited about the lineup. Thank you to everyone who offered to give a talk <3
Show this thread
1
2
3
And yes, this means that we'll be releasing another Riffle paper Real Soon(TM)!
Quote Tweet
me rn, editing a camera-ready after spending two weeks writing papers: I hereby swear to never write another paragraph again in my entire life
I like this direction.. may end up letting us build more with a small set of rich abstractions (~queries), instead of a bunch of ad-hoc code.
BTW I haven't read the entire writeup, however I think you might find the following interesting, if you haven't already seen them:
1
convex.dev (just found this yesterday) "backend for reactive app devs" and seems use an approach that may be called "function updates to a db" paired with "reactive updates to client".
this has good details:
Quote Tweet
CTO @jamesacowling describing the Convex design/architecture at the CMU Database Tech Talk Series: youtube.com/watch?v=iizcid
1
Show replies



