2 min read


  • Fix permission overrides; more specific permissions (i.e. per user) should always override role ("Member") permissions.
  • Fixed some permissions bugs when switching between projects.
  • A dialog is now shown for "first-time sync". I realize it can be scary looking at a big empty project when syncing it from zero; i.e. on a new browser or after a cache clear. Now we show a big "downloading project" dialog during this to eliminate any confusion.
  • LK now uses more clues from the browser to determine your online/offline state.
  • After a long editing session, sometimes LegendKeeper would take a long time to load the page that was edited, or in rarer circumstances after a very long (1hr+) editing session, fail to load the document entirely. This was due to what's called "update compaction." As you type, updates are streamed to your browser's database; when you fetch the document again, these updates are merged into one big update for storage. These update streams were getting too big, so now compaction is performed periodically as you type to keep the streams small. This should remedy this for the most part; there are still a few "bad luck" scenarios that can result in a long compaction/loading delay. I'll continue to improve this.
  • The LegendKeeper sync server originally consisted of the connection hosts, which handle all the real-time connection stuff, and the persistence workers, which handle moving your documents from short-term storage to long-term storage on the backend. These units were on the same process, so when the workers get bogged down, it became harder to connect to the LK server, resulting in sync server outages. The workers have now been broken out into their own process so they won't step on each others' toes. The workers now auto-scale to match the workload, as well.
  • Lots of iteration on the worker code to futher harden and minimize the odds of updates being lost.

I appreciate everyone's feedback and patience the past week. I'll be honest; it's been a really challenging time. Lots of bugs and production issues, not a lot of sleep. Hydra is slowly but surely stabilizing, but I expect there's still going to be a few bumps in the road left. There's been a few instances of outages and data being lost, and I'm really sorry to anyone impacted. I just wanted to assure you I'm listening and doing everything I can to make LK Hydra hardcore-production-grade software.

Desktop Apps

I'm not ready to release desktop apps yet, as many of LK Hydra's problems are solved by smashing the Refresh button, and desktop apps hide the refresh button. (They use Electron, so Cmd/Ctrl + R would work, or I could add a refresh button... but still.) Once I get a few days in a row of no issues, I'll feel more confident about launching these.


If you are having any issues, I recommend hitting Refresh and seeing if that helps. If it doesn't, the next version of "turn it off and back on again" for LK is the "Reset local data" button in Advanced Project Settings. This can be accessed by clicking your avatar in the bottom left, going to "Project", and then clicking the "Advanced" tab. "Reset Local Data" deletes your local database, and then rebuilds it based on the server's version of everything. If you have corrupted documents (docs that won't load no matter what), this will clear them out and get the server's last good version of the document.

Again, thank you for support and patience during this time. I'm excited to stabilize Hydra so we can move on to the fun stuff.

Written by Braden Herndon

Join 3,000+ worldbuilders getting practical tips

The LegendKeeper worldbuilding newsletter provides creative deep dives, RPG content, inspiration, and occasional product updates.

Unsubscribe anytime. Your email will be guarded with unbreakable wards.
Read our privacy policy.