offix | shelf | |
---|---|---|
2 | 2 | |
771 | 52 | |
- | - | |
0.0 | 0.0 | |
about 1 year ago | over 1 year ago | |
TypeScript | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
offix
-
Downsides of Offline First
Yeah,I'm trying to implement an electron offline first app that syncs, there seems to readymade solution.
Stuff like https://github.com/aerogear/offix seem to be in the right direction of what I'm looking for but not nearly mature enough.
I don't want to pu to much effort on the app so I would like something more or less ready made, preferably with graphql apis.
Any suggestions welcome.
-
Is GraphQL a wrong choice for offline-first apps?
I ended up with Offix and had to do optimistic cache handling, and I wrote up my experiences in a GitHub ticket on their repo with code as guidance for others. https://github.com/aerogear/offix/issues/715
shelf
-
Show HN: Bike – macOS Native Outliner
I think you could encode a “shelf” last-write-wins CRDT into your HTML using data attributes without exploding your file size. You would need to add a data-version attribute, and if you want to support hand-editing or editing by programs that don’t understand the CRDT, a CRC32 or other parity as data-parity so your loader can tell when a user might have edited a row without updating data-version.
Shelf is really simple - the JS implementation is tiny (https://github.com/dglittle/shelf) and a walkthrough of the algorithm here: https://bartoszsypytkowski.com/shelf-crdt/amp/
It wouldn’t handle character level sync - but would let you merge documents at a rows/items/blocks level.
-
Downsides of Offline First
The CRDT I was referencing was Shelf by Greg Little. He's given a few talks about it at the braid meetups. When he first showed it off, Kevin Jahns (the Yjs author) was also there and was as impressed as I was:
https://braid.org/meeting-8
The code is all here. Its tiny:
https://github.com/dglittle/shelf
What are some alternatives?
howtographql - The Fullstack Tutorial for GraphQL
swift-collections - Commonly used data structures for Swift
destreamer - Save Microsoft Stream videos for offline enjoyment.
crdt-example-app - A full implementation of CRDTs using hybrid logical clocks and a demo app that uses it
apollo-log - A logging extension for the Apollo GraphQL Server
distributed-counters - Experiments with distributed counters
absurd-sql - sqlite3 in ur indexeddb (hopefully a better backend soon)
Homebrew-cask - 🍻 A CLI workflow for the administration of macOS applications distributed as binaries
noms - The versioned, forkable, syncable database
cashew - 🐿 A flexible and straightforward library that caches HTTP requests in Angular
redux-saga - An alternative side effect model for Redux apps