1 min read


* Moved board processing to worker thread. You should experience less UI hitching when opening a board for the first time. I'm still working on a loading indicator for a board that's being parsed; sometimes they can take a second to appear the first time. I know that can be scary 😅.

* Board data is now auto-validated (and repaired, if necessary) when a board is first opened. The validator still hasn't captured all the ways a board can be corrupted, so there's still work to be done here. This is rare and easily fixable; will just take time to find these bugs.

* Unfilled board shapes are now only selectable by clicking their edges. This should make using polygons as layouts and containers much easier.

* Increased large page card width to 256 units, up from 248 units. It should align perfectly with the grid now.

* Multiplayer cursors look better and have tweened animations now.

Multiplayer worldbuilding whiteboard cursors.
Multiplayer cursor demo

* Reimplemented the client's application state to reduce memory and CPU usage. Moved my homegrown React-Context-powered viewmodel into zustand.

* Fixed GraphQL query fetching unnecessary data, causing image and map asset previews to be slower than necessary. They are much faster now.

* Fixed shortcuts placeholder styling.

* Fixed boards showing up as selectable links in the pin creation dialog.

* Fixed noisy, meaningless bug spamming the browser console (and my Sentry deployment).

* Improved render performance across the entire application. There's still a lot of overhead here that can be removed, but the app should feel snappier.

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.

Previous post:

Happy Holidays!