What to Coda in 2023?
Pick your projects with prudence and keep focus
The Coda Formula Language is elegant, versatile and since the performance increased substantially over time — the Coda connaisseur Joostmineur told me that he had 100K rows running without major issues — one may start to believe that due to the mix of performance and the CFL everything is possible in Coda.
In this blog I’ll argue that Coda is not meant to replace primary core company processes like a payroll system, a bookkeeping software or a complete logistic process. However it is a great tool to improve secondary processes that live today in different tools (email, docs, spreadsheets, etc.). Keeping track of sick leave or vacation per department, like registering over time on the work floor certainly fit in how I perceive the Coda focus.
The constrains forcing Coda in this secondary position are not related to the mentioned performance or the Coda Formula Language (which I believe is fantastic). Not even to the lack of well developed essential primary functions like a decent Permission system, proper Printing (to PDF) or EU proof Privacy concerns. It is more that the software is not yet designed (interface wise ) to handle complex operations.
What do I mean by complex?
Complex does not equal difficult. Complexity implies many interactions going on at the same time and you have to keep track of them in a certain order to keep the proces going. Multiple automations and tables with many columns stuffed with formulas generate complexity.
You may get lost, maybe not directly, but certainly weeks after. Not because you do not understand how the code operates (the difficult part of the equation), but you simply cannot keep track of the many interactions you created once without great effort. It is well known that while coding you see through and a while after not so much any more. Often this is repaired with smart comment functions, but not in our case.
Two months after I wrote this blog, Coda announced the comment function on Feb 22, 2023. This will solve a bit of issues we have.
This lack of overview results often in a doc hard to maintain. Like here, many columns and the maker in this example, makes use of a Pack that gives you per column the name and the function living in there. However it does not show you how columns (lists) are related. When you code complex interactions, this becomes expensive in terms of coherent well readable code and because you need a lot of time to comprehend again what was self evident while writing.
The code editor is relatively small. Blending multiple functions becomes a frustrating exercise due to a lack of overview. On top the code slows down and often I feel hindered by the auto suggestions Coda presents. As said, you cannot comment in your code and without notes your future self has a hard time to stay aligned with your present self.
The Coda comment function works
As of April §, 2023 we can add descriptions to columns as well, which is fantastic. It will radically change how we inform our future self.
We have tables with columns and inside columns we have functions. They are related, but on the outside you do not see how. Coda nor any pack, provides a tool to show how tables talk. Again, you are easily lost.
To keep track of these interactions, you have to document manually. The code you wrote is not something you can reference intelligently and thus you end up with a copy — paste of the real code. Besides it is labour intensive, you make mistakes easily and once you change your code, you have to review your documentation. This is counter productive and after a while you tend to forget about it. Long story short: it does not work.
Can we meaningful code complexity in Coda?
Yes we can.
Is this something like below?
Yes. One by one this seems feasible to me as long as the doc has a clear and well defined focus. This idea may go against the often hold opinion that you integrate many services and bring all the data nicely together in Coda to... Indeed, to do what exactly?
What is the main purpose of your doc?
Is the focus simply presenting or do you want to create a multifunctional application to keep track of employees, stock and finance based on the input pulled into Coda via Packs? The latter is likely to fail. While the Coda Formula Language can handle it, the framework supporting the maker cannot. May the Maker not get lost, she will need a serious amount of time to align her past self with her actual self. Time is money and even the best maker will be beaten by any competition using a dedicated tool.
My thesis is that defining a well defined task per doc will result in a beloved doc and if not maybe in an orphan and abandoned doc.
Complexity & Focus
Working in and with Coda implies that you accept the boundaries the software presents. Maybe you can stretch the limits a bit with tricks, but you cannot bend Coda into a different piece of software.
Complexity is an integral part of any software development. In the context of Coda the challenge to control your complexity is even greater. The tool itself is so incredibly flexible that you are inclined to use it all the time to solve all kind of problems because you believe it can do it ‘all’. However the lack of overview and relations will put a limit on your creativity.
Solving Important Secondary Problems
One can reduce the complexity of any document by setting clear goals. Focus on one function only and execute this function as good as you can.
I have created a HRM Template that deals with the next working day after vacation or sick leave is consumed. It takes into account work schedules (like working on Mon, Tue, Fri & Sat), day planning (8hrs., 6hrs., 12 hrs. and 10 hrs.) and the periodes these plannings are active. Altogether the code is both complex and difficult, but it speaks to me.
I observed an inner drive to expand the logic by adding extra tables to take care of related HRM aspects like contract management. Fortunately, I could tame my temptation.
To make this template work for clients, I have to set -up cross docs. A functionality in Coda I dislike, it is simply not well done. But this is what we have and it will do the job.
Early March I created a for free webhook pack I write about in this blog ⤵️
Is the end of Coda Cross Docs near?
Add or update rows in your target doc using a webhook
It avoids using cross docs.
I will create additional HRM templates and make them work together using webhooks. That is the better choice than to create one large doc that takes care of everything (assumed that you may finish such a doc, most complicated docs die a silent dead).
Solving Secondary problems instead of replacing core processes requires that you pick and define your solutions with care. What is it you do in Coda and what you leave up to other software?
In my example (HRM templates) there are all sorts of legal obligations to be met in order to process personal details. The way a Coda doc operates (all data is technically speaking accessible once you have the URL of the doc) makes it simply impossible to meet most of these standards on forehand. In case the URL is not public, you don’t want to implement most of these legal obligations. Instead Coda is a light weight replacement of the many — and from a legal view point even more dangerous — mix of tools used to keep track of days off and help team leaders to plan production. My Coda templates support mainly issues faced by middle management.
No-code use cases
Here are some other solutions you can create on your own with a touch of a button (source):
- Automate non-customer facing tasks like invoicing or KPIs fulfillment;
- Save, organise and visualize historical data the way you actually need;
- Create customer-facing web-applications for anything you need — from booking appointments to processing payments;
- Get more freedom by making anything into a mobile app that’s ready to go in minutes;
Get out of the trenches with less errors, repetitive tasks and time wasted on collecting data.
Will Code support power users?
Is Coda concerned about the discussed matters? Based on the richness of the toolbox, one may argue that they obviously are. Why else would you create and improve such a wonderful set of functions? On top it is good to see that the CEO likes using these functions as well — although he cannot resist using a kind of spreadsheet logic in his syntax — when he responds eloquently to a salient suboptimal suggestion.
This post raises the hope that the Coda leadership team understands the addressed needs. However when I see posts like these below I understand that complex docs may not be the focus at all and senior management tries to convince users with rather easy examples related to meeting notes, write ups etc. When you write down your ideas in Coda and discuss them, you don’t need comments in your large coded editor.
Note: as mentioned before, Coda introduced comments, but the question remains open: will it address the needs of power users?
What to Coda in 2023?
Make up your mind to see what kind of solutions can live in single docs and replace processes living today in a bunch of tools or can be better worked out in Coda like business cases. Spreadsheets are often used because people master the basics, but fail in building sustaining solutions due to the inherent flexibility of Spreadsheets. Do not try to recreate complete solutions (core processes) in Coda. The tool is not made for that. Be modest in terms of focus, be endless ambitious when it comes to create functions in the Coda Formula Language.
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 and or to exchange ideas. Besides you find my (for free) contributions to the Coda Community and on Twitter
About Christiaan Huizer · Template Budget Follow-Up
My name is Christiaan and I support SMB with calculations (budgets and planning) and I prefer using Coda to get the job done.
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.
If you enjoyed this read and would like to get more Coda related content, please consider a Medium membership. It is it only $5 a month, and you’ll have access to every article ever published on Medium. If you sign up using my referral link, I’ll earn a small commission.