What are Packs?¶
A Pack is an extension that adds new powers to your doc.
What other platforms call plugins, add-ons, or extensions, we call "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.
What can Packs do?¶
Packs can extend Coda in four specific ways:
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 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.
Who can build Packs?¶
Anyone with a Coda account is able to build a Pack, and getting started is as easy as clicking the "Create a Pack" button in the app. Our Pack Studio comes bundled with all the tools you'll need to write, build, and deploy a Pack, all without leaving your browser. And for more advanced developers we provide a command-line tool, allowing you to use your favorite IDE, tooling, and version control system.
How do Packs work?¶
Each Pack is its own serverless application, fully managed and run by Coda. All you have to do is write the code and we'll take care of the rest.
All Pack code is run on the server, ensuring a consistent and secure environment. Each execution of a Pack can run for at most a minute, but there are features that allow for longer running operations.
Unlike other scripting languages, Packs don't automatically have access to all the data the doc they are used in. Instead users pass the Pack only the specific parameters it requires. Packs can then make requests to external APIs to fetch more data, including our own Coda API.
sequenceDiagram participant Doc as Doc (browser) participant Pack as Pack (server) participant API as External API Doc->>+Pack: Execute Pack Note left of Pack: Passes parameters opt 0+ times Pack->>API: HTTP request API-->>Pack: Data end Pack-->>-Doc: Result