Launched: Faster, better, stronger docs - our latest performance improvements

tl;dr - We’ve made docs calculate and load up to 68% faster, and decreased the file size of the largest Coda docs by as much as 85%. That means faster, more performant docs that you can access to do even more via our API.

Sometimes making software faster means finding opportunities to optimize code and storage. Sometimes it means re-writing your foundational code entirely. The past few weeks at Coda, it’s meant both. Read on to learn how our team has been hard at work making Coda even more performant for you.

Continuing to optimize our code

In past updates, we’ve shared how we optimized storage of column data and facilitated progressive loading of docs to help you access your doc content more quickly. Since then we’ve closed out more than 20 additional work items to do everything from making sure to calculate aggregate values only when they’re needed to optimizing how we reflect sorting and row updates, unlocking additional performance improvements for your docs.

These changes benefit all docs, but are especially noticeable in large docs. Here’s how our improvements have impacted tables with 10,000+ rows:

Average time to load 10,000 rows

In other words, large docs can load up to 68% faster than before!

Rewriting our JSON snapshots

It’s not glamorous work, but someone has to do it. And, as CTO at Coda, it’s my honor to work alongside our talented team to do everything we can to make your docs more performant.

While looking for opportunities to improve performance, we noticed that loading Coda docs out of JSON means the entire JSON snapshot has to be loaded before you can view anything in Coda. By way of background, JSON (JavaScript Object Notation) is a format for storing & transporting data, most commonly used when data is sent from a server to a webpage. Because JSON is “human readable,” it is more verbose and takes more to communicate to our human brains than it would if just communicating computer-to-computer.

So, I went into the Matrix . . . just kidding. But I did rewrite our snapshotting to create our own binary file format, which more efficiently stores table data, allowing for quicker reads and writes. This, in turn, allows for more efficient sharding—which is a way of partitioning data in a database for efficiency by not calling every single bit of data unless it is needed for an operation or visualization.

As a result, individual table cells enjoy much smaller encoding so that we can process data faster (and you can make more robust API calls now that your docs are “smaller.”)

Median percentage reduction in uncompressed doc snapshot size by previous doc size

This is just the latest in our continued work to make Coda more performant for our valued Maker community. As a reminder, if there’s an area of Coda you think could be more performant, please share your feedback with us via this form.

We can’t wait to see what you Coda—even more quickly than ever before.

56 Likes

WOOOW! I was actually answering someone’s question about how fast Coda is today. I pulled up a doc with huge numbers of rows to show it slow down… but then it didn’t slow down!

I wondered what magic happened behind the scenes. Amazing work!

15 Likes

:pray: Thank you for focusing on performance :grey_exclamation:

Coda is SO capable right now that the limitations are not in its features but the ability to deploy them.

:shinto_shrine:THE OBSTACLE IS THE PATH! :ocean:

10 Likes

This is incredible. Great stuff guys :heart:

4 Likes

Get I get an AMEN everyone!

4 Likes

Gotta give it up to @Matthew_Tebbs and @Jason_Tamulonis for their amazing work on all of this as well! It’s such an honor to work on a team like the one at Coda that acknowledges that performance is a feature.

10 Likes

It’s a while that i’m criticising coda for performances (and layouts) but today i’m astonished

My biggest doc, with a medium loading time of 1 minute and 10 second today load on 30 second, being usable way before

I can use cross doc with it, something that i had put on “never gonna happen” categories

I’m absolutely amazed by this update, i would say the biggest update ever after the out-of-beta moment

THANKS! :sob: :heart_eyes:

20 Likes

Amazing! Well done! :partying_face::partying_face::partying_face:

3 Likes

Have to chime in, great work! Also love that you’re tracking performance of Coda in a coda doc to show us! It’s so great to see the continuing focus on performance. I’m still smiling every day when my custom tools let me do things so much faster than I would be able to in alternative tools.

Eating your own dog food :trophy:

8 Likes

This is now a proper update! Well done!

1 Like