This doc is too big to sync

Here are a few very short facts. I’ll expand on these in my blog when I have more time.

  1. The doc size limit is 125 megabytes. This is 0.json (schema file) and 1.json (data file) size combined in their uncompressed form:

    When the doc goes over this limit it becomes “too big” and you won’t be able to access it through API / Cross-doc, and automations will most likely not run either. You’ll still be able to open it in your browser — it just won’t open on Coda servers for automation/API access purposes. I got this info from Coda support.

  2. The biggest impact comes from button columns and conditional formats.
    Coda stores buttons very inefficiently: a button is set up on column level and the configuration is the same for all rows, yet in 1.json it’s duplicated for every row.
    Conditional format settings are also duplicated for each row, regardless if those settings apply for this row or not. They also appear duplicated multiple times per row.
    Cutting down on buttons and conditional formatting are the most effective first-aid measures to bring doc size down. There are workarounds for buttons that I’ll expand on later.

  3. Cross-doc data takes more space than local tables. This is mostly due to table/row identifiers taking not 10 but 64 characters. So every time you reference anything from a cross-doc table, you’re getting formulas that take ~5–7 times more space.

Bad news is that Coda stores doc data very inefficiently, as I learned from debugging the 0.json and 1.json files myself. Good news is that there’s room for eventual improvement.