Update: Our continued commitment to performance

It’s already been an exciting year at Coda, with launches that built on our features from the end of 2020 (like pre-filled forms) to launches that enabled new ways to interact with your data (reactions and new controls). While we continue to invest in new and exciting ways to make Coda work for your team, we remain committed to our goal of making docs more performant.

Following November’s update on changes we made to reduce doc load time by 25%, I’m excited to share that we’ve made even more improvements to further reduce median doc load time by 15%!

In addition to optimizing how we encode data so that it can be stored more efficiently, we’ve specifically optimized three types of columns: lookup, select list, and people columns. If your docs have tables with these types of columns in them, hopefully you’re noticing a smoother experience. If not, don’t worryーwe’re working on optimizing more column types soon, which should continue to speed up your docs.

Even better? Our latest improvements don’t just impact how fast your docs load; they also make docs less likely to approach server side limits for cross-doc and API actions that have been known to affect some larger docs.

And we’re not done yet. We’ll continue to work on key doc performance vectors, and will provide more updates soon. Next, the team plans to tackle additional column types, and a progressive doc load model that will make your pages load even more quickly. This also lays the groundwork for improvements in calculation performance, which we plan to focus on in the coming weeks as well.

Thanks for keeping us accountable to deliver on this commitment with your feedback and questions in this forum.

60 Likes

Wow @Kelsey_Chan , THIS is a post that will make lots of makers happy! (Me among them…)
Thanks a lot for the exhaustive explanation and the roadmap insight: much appreciated.

Way to go! :+1:t2: :man_dancing:t2:

10 Likes

This is fantastic news!

@Kelsey_Chan — can you go a bit more technical about what specifically changed in those column types?

(I could go inspect the doc JSONs myself but I’m a bit lazy, so why do it the hard way if I could just ask? :slight_smile: )

3 Likes

Thank you!!! Must needed update.

Thanks,

2 Likes

Hi, Paul!

In the old world, each user column used to be backed by a separate system render column that contained information about the column format settings. For example, each row in the system render column would store whether or not it’s multiselect, the selectable values formula, quick add, etc. This made it easier to handle formulaic properties (e.g. button label property), but that also meant that metadata was being stored for every single row in the table, even though a lot of it was redundant.

The column storage work consists of refactoring our codebase so that we can move the column settings into an object that is stored once on the user column. This allows us to get rid of the system render column in most cases.

We’ve made this update for people, lookup, select columns and are working through the remaining column types :slightly_smiling_face:

13 Likes

Bravo, this is exactly what’s needed for larger or commercial-grade projects. Thank you for your work and continued focus on this critical issue.

2 Likes

@Kelsey_Chan

You might consider doing something similar with each UI rendering of conditional formatting rules, which would massively reduce their aggregate vertical footprint.:grinning:

2 Likes

Thanks! I saw that docs feel a bit faster on desktop, but unfortunately the mobile experience is terribly slow. I feel that the mobile experience is a bit forgotten. The crazy thing is that if you open Coda on the mobile web browser it’s super fast! Why the app can’t keep it up? Just some observations:

  • When first opening the app, it takes a long time to load;
  • When trying to open a doc on the doc list, the icons are very unresponsive and slow;
  • When opening other apps with Coda opened in background, after returning to the app it logs off;
  • There is no way to quickly search info inside a doc (no search bar).

Those are all performance issues in the mobile app. Just for the record, I am using iOS and the app is up to date.

3 Likes

Thanks, Ander! That’s definitely on our radar, too :grinning_face_with_smiling_eyes:

For what it’s worth, our string interning update should help with the conditional formatting storage, too :ok_hand:

3 Likes

Thanks a lot!

Looking forward to further optimizations of control objects and buttons in particular. The current setup (a copy of a button’s action per row; _noop() for disabled buttons) is easier for “click the whole column of buttons” scenario but not so much for doc size.

3 Likes

Hi, Guilherme!

Thank you for the feedback. I’ve shared it with the team.

In general, all performance improvements are going to help the mobile experience, but we’re aware the benefits from these recent changes may not be as obvious on the mobile app. We would love to tackle everything at once, but for now, we’ve prioritized broader performance issues first before focusing on mobile app-specific updates.

3 Likes

I’m excited to hear about docs being less likely to hit cross-doc API limits! This has been a big pain point for us. We actually had to split our company’s master production calendar into two separate docs because a single doc was too big for our cross-doc connections. I hope one day we will be able to merge our two calendars back into one single unified doc again.

5 Likes

EPIC! Excited for the never ending improvements!

5 Likes

I think overall performance, especially for larger/more complicated tables, is one of the most important improvements Coda can make at the moment.
I am really happy whenever I see performance improvements to go live! I think this is probably one of the biggest limiting factors of Coda at the moment, and better performance and handling of large(or rich with formatting/buttons etc.) tables could open up many use-cases that are at the moment probably not really viable or need some bigger tradeoffs to work.
Cant wait for next batch of performance updates :hourglass_flowing_sand: :smiley:

3 Likes

On of the thing I’ve noticed quite quickly is how blazing fast Coda can be compared to Confluence.

2 Likes

Great job Codans! It’s great to see performance as a top priority - this is the way. :slight_smile:

I have to say we were pretty nervous to move forward with Coda over a year ago, but the constant vigilance on performance plus the multitude of other critical improvements from sign-in, attachments, forms, named variables, I mean it’s too many to list at this point over the last year. Kudos!

3 Likes