Changelog 0001: Collab editing, infinite whiteboards, bug fixes for code blocks

First of all, 🎃 Happy Halloween 🎃 to all the Americans out there, and welcome! From here on out, we’ll be publishing a weekly changelog. It will be a space for us to talk about what’s new: features, improvements, bug fixes, and so on. A new changelog entry will be published every Friday, and posted to Twitter and Bluesky.

For the inaugural changelog, mostly we are focusing on ✨ collaboration features ✨!

Collaborative, infinite whiteboards

Sometimes you just want to draw what you are thinking. We’ve got you covered.

To get started, first, click the chevron next to the + New Page button and click New whiteboard page:

Loading...

Share with friends or colleagues (if you like):

Loading...

And then draw whatever you want!

Loading...


Currently, whiteboards are stored on your local disk as JSON files when you start. Once you are ready to share, we leverage a centralize server to enable collaborative editing. JSON diffs are annoying to deal with though, and if you have opinions about what to show instead, we’d love to hear from you!

Collaborative text editing

Ah, collaborative text editing. The white whale of any text editor, combining the two most beloved concepts in computer science: off-by-one errors, and distributed systems.

We’ve been working hard the last few months to iron out all the kinks in our own implementation. It’s now available to everyone:

Loading...

Among other things, we’ve taken care to make sure the editor runs in 60fps no matter how many editors there are. This turns out to be much harder than you’d think, and it’s something not a lot of people are talking about, so we have been giving talks about it:

Other stuff

Alongside all of these things we have rounded off many, many bugs reported by our diligent beta testers.

Many arrow navigation bugs in fenced code blocks. Arrow key navigating between adjacent code blocks now should now work more-or-less seamlessly.

Linux builds now bundle libayatana correctly. Previously, users had to manually place this dependency in a folder, which sucked.

Many small usability fixes to fenced code blocks. Tab indents lines rather than replacing their contents with a tab character; converting many blocks to a fenced code block produces a single fenced code block, rather than one per line; work-around for WebKit bug which confuses selection position when you click next to a fenced code block.