What level of Coda are you on?

Lol, indeed. This is just a meme I made for the talk about Coda I did yesterday at a local meetup. Don’t take this too seriously, lol.

Here’s some references:

  • Iterator tables — tables that perform some repeated action over a dataset externally. Initially the reasons for them were different (absence of WithName and very costly Button columns), but they are still relevant with another reason: to keep business logic away from the data. E.g. I have a Patreon Admin doc where I add patrons and add doc templates, and I use an iterator table to generate rows for new Patron-Doc associations (instead of having a button on Patrons table to generate all templates for a patron, or having a button on Docs table to generate this template for all patrons.)

  • Volatile columns — columns in your tables that are not saved to the doc and are not global but unique to each user looking at that table. This is an anti-pattern because it mixes presentational logic with data. But sometimes it’s a quick way to implement some interface without introducing extra tables (I’d say though that in 4/5 cases I had to eventually refactor those)

  • Forced circular recalc — just had to come up with a catchy name yesterday, lol. But the trick is to write formulas in such way that they trigger repeated recalculation until some stable condition is reached. This is achieved when formulas get recalculated in separate frames, i.e. the change to one formula will then trigger the recalculation of another, and vice versa, until the result of either is not changed anymore and the loop stops. Very fickle because these are very likely to break on any engineering changes to CFL (Coda Formula Language)

Indeed, but what oftentimes happens is that a client adopts Coda and is hooked on its no-code capabilities, but then eventually wants more functionality, which requires all those deeper dives :slight_smile:

Still I think the landscape improved significantly in the last few years. People make better docs now. They are more keen on getting some of those yes-code skills to make better docs than before.