Hey HN! A few years ago I got into D&D by GMing for a group of friends, but found even our casual game generated tons of lore. I looked around for software to help me organize, but didn’t find anything I liked. I decided to make my own, and when I shared the prototype it got really great reception! After several iterations, I now make a living off of it, helping GMs and other creatives keep their worlds organized. The tech-stack is pretty unique! The web app is mostly offline capable, being powered by CRDTs (yjs, specifically), but I also do some server-side things, such as processing huge maps into tile sets and such. Let me know what you think!
So one of my goals to start with was data autonomy. Campaign-planning and worldbuilding is really personal, so I wanted to find a way for users to feel in control of their data, while still having robust online features. Implementing a hybrid CRDT application is really hard, it turns out! Especially when your users are super prolific. So building an offline-capable system, able to gracefully support collaboration, that would still scale to thousands of docs, has been the hardest part. I think fundamentally we accomplished that goal, but there's still lots of improvements I want to make.
Another hurdle that fellow developers might be familiar with is dealing with IndexedDB across many platforms... Including Safari.
I've been following yjs for a while. I've been really inspired by dmonad's progress, and I can be a bit of a performance junkie. Yjs's benchmarks were really impressive, and ultimately it was Kevin's blog post that convinced me to use it: https://blog.kevinjahns.de/are-crdts-suitable-for-shared-edi...
LK is a system-agnostic atlas + wiki + whiteboard; we're trying not to encode system-specific stuff, at least not yet. I'd like to implement a plugin system so that we could introduce functions specifically aimed towards 5e, Pathfinder, etc. At its core though we want LK to be useful to anyone building fictional worlds.
8 comments
[ 2.1 ms ] story [ 19.8 ms ] threadAnother hurdle that fellow developers might be familiar with is dealing with IndexedDB across many platforms... Including Safari.