Skip to content

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.

Packs are built using JavaScript or TypeScript, either on your local machine or in the browser, and run on Coda's own servers. We have a gallery where users can discover and install Packs, as well as a robust set of admin controls.

Packs overview Why build Packs?

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.

A custom formula in the formula editor
A formula from the Google Calendar Pack which looks up when the user has busy time on their calendar.

Learn more

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.

A custom action in a button
A button being configured with an action from the the Google Calendar Pack that creates a new event in the user's calendar.

Learn more

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.

A custom column format
A column format from the Google Calendar Pack that displays rich information about an event provided its URL.

Learn more

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.

A Pack table that syncs from an external source
A table from the Google Calendar Pack that pulls in the upcoming events on a user's calendar.

Learn more

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.

You will need to have a basic understanding of JavaScript or TypeScript to be successful, so if you're new to coding an online JavaScript course might be a good place to start. We also have a large library of examples and templates built into the Pack Studio, plus a friendly community of fellow Pack makers that can help you along the way.

Build your first Pack

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

Packs are run in a custom JavaScript execution environment created by Coda, compatible with the ES2022 standard. You can use all the modern JavaScript features, but browser- and Node-specific objects are not available (window, fs, etc).