yjs
cardi
Our great sponsors
yjs | cardi | |
---|---|---|
53 | 5 | |
15,052 | 82 | |
4.1% | - | |
8.4 | 0.0 | |
about 16 hours ago | almost 2 years ago | |
JavaScript | JavaScript | |
MIT | GNU General Public License v3.0 only |
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.
yjs
- Show HN: Collaborate on your YC Application with CRDT-powered forms
-
Making CRDTs 98% More Efficient
One idea is just to use fewer random bits in peerIDs. Yjs (https://docs.yjs.dev/) gets away with just 32 random bits. If you compromise and use 64 random bits, then even a very popular doc with 1 million lifetime peerIDs will have a < 10^-7 lifetime probability of collision.
-
An Interactive Intro to CRDTs
I've seen it come up often in collaborative text editors.
Also see: https://github.com/yjs/yjs
-
JSON Schema Store
You are absolutely right that XML is better for document structures.
My current theory is that Yjs [0] is the new JSON+XML. It gives you both JSON and XML types in one nested structure, all with conflict free merging via incremental updates.
Also, you note the issue with XML and overlapping inline markup. Yjs has an answer for that with its text type, you can apply attributes (for styling or anything else) via arbatary ranges. They can overlap.
Obviously I'm being a little hypabolic suggesting it will replace JSON, the beauty of JSON is is simplicity, but for many systems building on Yjs or similar CRDT based serialisation systems is the future.
-
Launch HN: Tiptap (YC S23) – Toolkit for developing collaborative editors
Note: https://github.com/yjs/yjs for collaborative "document edition, and user cursors"; has WebRTC, web socket, matrix.org backend
-
Wormholers, what can CCP and wormholers do to improve J-Space?
CCP needs to revamp proto anyway, due to recent exploits... practically, nothing really prevents 'em from using some sort of CRDT's to make the state of the sig view eventually consistent (yjs lib, if we're speaking frontendian).
-
How to use Yjs with Ruby on Rails?
Yjs framework: Because it is a CRDT implementation which provides collaborative editing and offline-first capability.
-
🐑🐑🐑 EweserDB, the user-owned database 🐑🐑🐑
No problem. The database CRUD features are just helpers as an abstraction on top of yjs: https://docs.yjs.dev/. Eweser adds schemas in the form of typescript types to make using it simpler, more structured, and interoperability easier.
- Ask HN: What is new in Algorithms / Data Structures these days?
- How does Google docs send the changes done by other users in real-time?
cardi
-
Show HN: WebCrate – an open source, social and self-hosted bookmarking tool
> Deta Space made it really easy for me as dev to build something like WebCrate quickly and it's also awesome for users. The app keeps running even if I disappear and hosting, auth etc. is all handled for me
Ah yeah, love the concept, I had similar goals in mind when making Cardi (although I wasn't aware of many options at the time for putting data in control of the user -- I ended up just having people log in with AWS access keys and it stores data in DynamoDB, which is weird but has actually been working great so far).
https://github.com/pickledish/cardi
Anyways Deta seems interesting, looking forward to seeing where it goes from here! Would love more/better options in this space.
-
Kanban board in one HTML using localstorage
Ha, I'm very interested in this!
I had this same problem for my own app[0], I ended up solving it by just using dynamodb in my personal AWS account as the storage. Generous free tier, great uptime, and no users, security, etc to manage for me, like you mention.
It's way more technical than I'd like of course, since anyone who wants to use it needs to have a personal AWS account. And it isn't "synced", like you say, it's just using the AWS JS SDK to speak to dynamodb directly. But still it's been a real pleasure to build a web app this way -- the fact that anyone can use the app by plugging in their own storage is kind of the web development holy grail IMO.
- pickledish/cardi Google Keep, but without the Google.
-
Show HN: Cardi – store your notes for free in AWS DynamoDB
Hey thanks! I wouldn't say it's a hard dependency, in fact it can work with other things that are API-compatible with DynamoDB, like Scylla for example if you wanted to self-host everything:
http://scylla.docs.scylladb.com/master/alternator/alternator
And in terms of using something like Firestore, the storage needs of this are very simple so it wouldn't be very hard to add that in. I tried to keep all the persistence-related functionality separated off for this purpose:
https://github.com/pickledish/cardi/tree/master/src/dynamodb
What are some alternatives?
automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
player.html - One file drop-in video player web app for using video files served using basic directory listing
liveblocks - Liveblocks is a platform to ship collaborative features like comments, notifications, text editors in minutes instead of months.
kanban - A basic kanban board in a single HTML file using browser native drag & drop and localStorage for persistence
automerge-rs - Rust implementation of automerge [Moved to: https://github.com/automerge/automerge]
github-scrumboard - :calendar: GitHub Scrumboard Chromium Extension
crdt-woot - Implementation of collaborative editing algorithm CRDT WOOT.
Kanboard - Kanban project management software
milkdown - 🍼 Plugin driven WYSIWYG markdown editor framework.
linkding - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker.
MobX - Simple, scalable state management.
Nullboard - Nullboard is a minimalist kanban board, focused on compactness and readability.