2,508 karma · joined March 11, 2009
https://x.com/jamespearce https://tripleodeon.com
It certainly _seems_ like the GitHub interface should feel more like an 'app', and less a 'site'. Or just me?
The way to do that would be to listen to data changes (eg addCellListener) and in the listener just manipulate the DOM directly. Probably a pretty slick approach, performance-wise.
For SQLite, a variety of flavors are supported including things like ElectricSQL, Turso, and PowerSync - which all let you sync back to a server. You might also consider running a ‘client’ on a server that can listen to changes coming through web sockets and persist itself to server storage - but I haven’t written that pattern up yet.
Hopefully you’ll get a chance to try it out in the meantime though!
I think a lot of web consumer products (and dare I say SaaS too) are these days _not_ on your own computer like they were in the 90's or early 2000s. This isn't a call to return to those days, but it is a reminder that there have been trade offs in moving our productive lives entirely to other people's computers - both in terms of technical performance, but also conceptual ownership and the like. Can we rebalance a little?
So yes, the idea is exactly _not_ new. But a lot of products are built today without considering this tried-and-tested architecture as an option. This site & list of tools is just a friendly reminder that yes, there is another way.
I just thought this was a fun list of links to put together (like it's 1994!) and TBH I was not expecting quite this degree of positive reception.
Happy to answer any questions!
Logged with Brave support and as issue on the site’s repo.
Sort of an ORM trope, but hey, why not!
With "data store", rather than "database", I'll admit I am hedging my bets. Through one lens, this library can look more like an app-level store in a classic React sort of way. Through another (most notably the table/row/cell structure), it looks like an RDBMS. I'm not ready to go all-in and declare it's a database yet. Such nomenclature comes with Assumptions™.
But you've sold me on the concept. I have plenty of prior art to read up on, it seems!
In the meantime try opening up the drawing demo (https://tinybase.org/demos/drawing/) in two or more (of the same) browser windows and move things around. This is just via local storage but imagine how cool it would be to have that across broader collaboration...
BUT of course, this is not a library to be used with data sets of billions of rows! I'd recommend a proper RDBMS for that ;)
A couple of great essays I've enjoyed in this space are https://www.inkandswitch.com/local-first & https://riffle.systems/essays/prelude/
I feel it should be possible to build certain types of apps that can view, query, and manipulate denormalized data without even being online. (Perhaps I shouldn't over-glamorize those days when one used to jam Access databases into Windows apps, but hopefully you get the point.) Reactivity just serves as a nice binding paradigm.