The pack builder aims to make the process of building coda`s packs a little bit simpler and none-coders friendly, by giving the user to define the building blocks needed in order to create some great packs
A Pack is an extension that adds new powers to your doc.
What other platforms call plugins, add-ons, or extensions, in Coda called "Packs". A Pack extends the core building blocks of Coda, allowing users to build more powerful and integrated docs. Anyone can build a Pack, and they can use it in their own docs, share it with their team, or publish it to the world.
Different kind of packs ?
A Coda pack could be one of 4 types :
Packs can add new formulas for the Coda formula language. These formulas can do simple calculations, call a library, or pull in data from an external source.
Packs can add new actions, which are a special type of formula that powers buttons and automations. These actions typically make a change in an external application.
Packs can add new column formats, which control how values are displayed within a table. They can simply reformat the data or enrich it with related information from an external source.
Packs can add Pack tables, which are a special type of table that automatically syncs in data from an outside source. These tables are often used to bring in records from other apps or productivity tools.
What are the building blocks?
A pack is built as a Lego, it has has building blocks, each block have a different structure and target, and if assembled correctly, the result could become as beautiful and productive as far as your imagination.
import statement is used to import code parts to be used in the pack
export statement is used to export the pack you are making to be used by coda
Formulas are one of the most basic building blocks in Coda; used to calculate values, filter tables, and so much more
Function - execute
The execute function is linked to a formula
Function - external
The external function is not linked to a specific formula, sometimes refers as helper function
The primary mechanism for passing data from the user or document into your Pack is via parameters. You define the parameters in your code and the user fills them with values when they use your Pack.
One of the key use cases for Packs is integrating Coda with other apps and services, which often involves some form of authentication. When building a Pack you specify the type of authentication required by the API and Coda handles the credentials exchange, token storage, and account management.
A column format is a custom column type that you can apply to any column in any Coda table. It changes how the values within that column are interpreted and displayed, while still allowing users to quickly edit the underlying value.
Coda automatically generates user documentation for your formulas based on the names and descriptions you assign
The primary mechanism for passing data from the user or document into your Pack is via parameters. You define the parameters in your code and the user fills them with values when they use your Pack. The same parameter mechanism is used by formulas, actions, and sync tables. each parameter could also be define as Array (an ordered series or parameters ) and sparse Array (A sparse array is an array of data in which many elements have a value of zero)
Use the String parameter to pass a plain text value
Use the Number parameter type to pass a number
Use the Boolean parameter type to pass a boolean (true/false)
Use the Date parameter type to pass a date value to your formula
Use the pack , sell it , make it better and create more!
About the author
Roy Portnoy, B.Sc. in Information Systems Management from Israel,
loves to create smart solutions and Coda provides me a great solutions for stand alone or prototypes. this project was create as part the Coda`s Doctorate program, with Maria Marquis in mind, so she could finally create her first Pack :)
I would love to get feedbacks, requests or examples of the packs created at
The project does not pretend it is perfect, it is only helps to create the bone structure of a pack, sometimes, it just won`t be enough, so more professional help needed. In the future I hope to create a database of programmers as service provider which could help for a fee, as of right now I will suggest to contact me (at
It is unorthodox on the Coda community to add such option, and because of this reason, I would like to add it here. Making a document that is helpful and usable is not easy or fast, so if you found it helpful inspiring or simply something you wish to grow better and deeply, please consider by me a coffee at