How to Coda with Compose?
what you need to know
The introduction of the compose column type is a good example in my understanding of how the Coda team followed their hunch on making the tool more accessible for a larger audience. This column type suggests simplicity but instead for many makers creates confusion and adds complexity. That is because to make it as simple as suggested, you need to understand how to Coda and not just a bit.
I use this column type in general to create a unique string in my display column (Name) and also to write AI prompts. I use it because I can. When you have read this blog, you can to!
Good to know
The compose column type presents you with a canvas. This means that you can add formulas by entering the equal symbol ( = ). You may need formulas because not all data is directly available. The compose column only offers data living on the same row in the table. When you reference data brought to you via a relation type column, you get the object of the relation (previously lookup) and that may confuse you. To show how to resolve that confusion I first apply Format().
The same result we can get with compose and then it looks like this:
What feels easier for you and why? Well in the compose column type you no longer have the curly brackets put between quotes, that makes it easier. However, the Format()
function shows the colored chips, which makes chaining understandable. The text value of the name of the couple does not live in the table couples, but lives in an other table, which explains the Name.Name
logic. For your information, the couple table is a sub set of a people table filled out by an automation, only couples are brought in.
The name of the couple I see in the table, I cannot use as such. Well I can but it looks like what you see below.
The blue text with the @ symbol in front of it tells us we are dealing with the object of a row. When you hover over it, all related values show up. This is useful, but not in this context. We want plain text and thus we should not reference the object (the thisRow) but the column itself which in this specific case is found via chaining.
I have seen people using ToText()
Although this work, there is no need for this conversion. Te text value is already available in the column and so you can safe yourself the additional calculation required to convert the object into plain text via ToText()
. Anyway, we need to apply formula logic to get the proper outcome and that is what matters.
You can make it simpler by creating columns holding the values for you, like the rowIndex I generated. This results in an easier set up.
Nevertheless, this is not what you expect when the compose logic is presented to you. It holds the promise you don’t need the Concatenate()
or Format()
logic , you simply use compose.
That is only one part of the truth, the other part I just showed you.
When you want use Coda, you need to understand and accept it is a low code tool and thus you have to figure out how the code logic works for you. I’ll present some basics in another blog any time soon, but for now we conclude that the compose column is very handy when you want to work fast and you understand how to Coda.
My name is Christiaan and I support SMB with calculations (budgets and — Human Resource — planning) and I prefer using Coda to get the job done. More about me below:
I hope you enjoyed this article. If you have questions feel free to reach out. Though this article is for free, my work (including advice) won’t be, but there is always room for a chat to see what can be done. You find my (for free) contributions to the Coda Community and on Twitter.
Coda comes with a set of building blocks ー like pages for infinite depth, tables that talk to each other, and buttons that take action inside or outside your doc ーso anyone can make a doc as powerful as an app (source).
Not to forget: the Coda Community provides great insights for free once you add a sample doc.