✨ Wrote an essay about Riffle, a new project I've been working on w/ , and Daniel Jackson!
Guiding question: could we simplify app dev w/ a new kind of reactive local-first database?
Here's why I'm excited about this work:
Conversation
thanks for sharing! as someone who's deeply afraid of backend and sql, i wonder if one route isn't pushing state towards sql/db, but rather the other way: pulling persistent storage toward json/common app data structures
1
3
when i was using darklang a few years ago i remember at one point asking how the data i was writing was stored, and at the time they were simply stored as json blobs (within a db, but as far as my apps data was concerned, everything was json) that make things easier to reason
1
also as i worked on multiplayer apps like sprout and felt, so much of the state work was taking updates/patches over websockets and merging it to local client state JSON
1
1
anyway, this is more implementation detail i suppose, but the general spirit of bringing app state and db into one place i find compelling! i end up doing that with most of my personal app experiments (in frontend, bc i always avoid using dbs)
1
1
yeah makes sense! curious if you have opinions on tools like yjs / automerge that help manage JSON data?
Also hear you on being afraid of SQL. Some of that is SQL's fault for being weird in various ways. But I'd like to see the core idea of relational used more in frontend...
2
3
yea i end up feeling smart, building relational json blobs, with jotai/valtio derived atoms/states when necessary, and it takes me a second to be like "oh wait this is how relational db tables work im just doing it in JS lmao"
3
3
Our high level visions are pointing at exactly the same thing: a nice database, well integrated into the app dev environment, where everything feels native.
I feel like there are a lot of lessons of how to do things from SQL DBs. Also a lot of lessons of how not to do things...
One example: data normalization is a great idea, but SQL makes playing with highly normalized data really annoying (since joins are so heavy/annoying).
I feel like normalization is something you do to "eat your vegetables" when it should actually feel like the right thing to do.


