# Airtable Custom Extensions FAQ

We're actively working on this page! Some sections may be missing or subject to change.

## What languages can I use to build Airtable custom extensions?

Custom Extensions are built with JavaScript/TypeScript and React. We provide a full-featured SDK for interacting with Airtable and subscribing to real-time changes. You can also leverage npm's 1,200,000+ modules to build almost anything you can imagine.

## How do I develop extensions?

You develop extensions locally using a command line tool we've built. This means you can use your existing development workflows: code editor, version control system, code hosting, etc.

## What happens when I release an extension?

After you have added the extension to an interface and developed the extension locally, you can release an extension so that other collaborators in the interface can see and use the extension. When you run `block release`, the code is bundled and sent to the Airtable server — we host the released bundles for you. Then, you can publish the interface so that collaborators in the interface can use your extension.

## After releasing the extension, what are the permissions for a custom extension?

Your custom extension automatically enforces the existing permissions of the collaborator who is using it.

## Can we share interface pages with custom extensions just like other interface pages?

Yes, you can share an interface page with a custom extensions publicly, just like other interface pages. See [this support article](https://support.airtable.com/docs/managing-and-sharing-interfaces#sharing-interface-pages-publicly) for more information.

## How do I get help?

Please reach out to list-interface-extensions-external@airtable.com with any issues you have. We are excited to work with you to develop this feature and hear what you build!

## Limitations
There are a few limitations to be aware of as you develop Interface Extensions. We are still actively working on adding capabilities, but we believe you should be aware of the following:

1. Interface Extensions can’t securely store credentials for third-party services. You can still create Interface Extensions that integrate with third-party services, but any credentials you use will be exposed to any user of your Interface Extension, which is insecure.

2. Interface Extensions are not currently viewable on mobile.

3. Interface Extensions cannot be added to Blank layout pages or Enterprise Managed Apps.


## Visible fields
Upon installation, Interface Extensions only have access to the first four fields in the associated table. Your extension may throw errors as it may not have access to the apprpriate fields, so you may want to grant the extension access to more fields.

To do that: select the interface extension. In the properties panel, under Data, configure the fields you'd like to be visible by clicking on the gear icon. From there you can toggle on visibility of the fields you'd prefer.


## Places to install

At the moment, Interface Extensions can only be used in Dashboard pages or their own standalone pages.
