# Beta: My Custom Apps

Thank you for participating in the "My Custom Apps" beta! "My Custom Apps" allows you to view, manage, and develop all of
your custom apps. Additionally, you can install new custom apps in any base, and create a link to your app that allows
others to install it in their bases.

## Getting started

In this guide, we’ll refer to pre-existing custom apps created before the beta as "legacy custom apps" and new apps
created during the beta as "new custom apps". Legacy custom apps will **not** appear in "My Custom Apps", but you can
still install and develop them in the bases that they were created in.

Any custom apps you create after joining the beta will be **new custom apps**. There is no way to automatically upgrade
a legacy custom app to a new custom app at this time, but you can copy over the source code of an existing legacy
custom app to a new custom app.

To develop new custom apps, you’ll need to upgrade your Blocks CLI to at least version 0.0.63. You can upgrade it to the
latest version using `npm install -g @airtable/blocks-cli@latest`. The minimum version of the Blocks SDK required is the
same as for legacy custom apps (0.0.40).

## "My Custom Apps"
You can access "My Custom Apps" at [/create/extensions](https://airtable.com/create/extensions). From here, you can create a new custom app
as well as view a list of your new custom apps.

![The My Custom Apps main page](https://static.airtable.com/blocks/images/developer_hub_guide_main.png)

You can click a custom app to view details, access development, manage distribution, and view release history for the app.

![App detail page in the My Custom Apps](https://static.airtable.com/blocks/images/developer_hub_guide_detail.png)

You can also delete the app - this will disable all existing installations of the app.

## Developing your new custom app

The same `block run` and `block release` commands are used to develop and release your app. There are three main
differences between developing legacy and new custom apps.

First: you can now develop your custom app against any base you have creator permissions in. You can do this by
selecting a base to develop against in "My Custom Apps". You can also enter development from within a base as before,
by selecting "Edit app" on an existing installation of your app.

![Starting development of an app from the hub](https://static.airtable.com/blocks/images/developer_hub_guide_base_picker.png)

Second: `block release` will now update your app across all bases it is installed in (rather than a single base). This
does mean that `block release` is no longer instantaneous: it will take up to 30 minutes to fully deploy your app.
You'll now also be prompted to provide a comment whenever you run `block release`. Release comments are displayed in the
release history for your app in "My custom apps".

Third: [Remotes](https://airtable.com/developers/extensions/guides/run-in-multiple-bases.md) are still supported, but you probably won’t need them anymore. Previously, you would create a new remote
for each base you wanted to use your custom app in, and you would run `block release --remote remoteName` for each
remote to update your app in each base. New custom apps can be installed in multiple bases, so you no longer need to use
remotes for this. A remote for a new custom app corresponds to an entirely separate app in "My Custom Apps".

## Installing custom apps from the marketplace

You can see, manage and install all of your new custom apps from the marketplace. If you’re in a base where legacy
custom apps were previously created, those will also be displayed. You can install your custom apps in any base you have
creator permissions in, including bases in Free or Plus workspaces, but they will be disabled for other users. Custom
apps will only run for other collaborators in bases in Pro or Enterprise workspaces.

![Legacy and new custom apps in the marketplace](https://static.airtable.com/blocks/images/developer_hub_guide_marketplace.png)

Installations of new custom apps will be denoted with a "Custom" tag, similar to the "Custom" tag on
installations of legacy custom apps. Users can click that tag to get more information about your app.

![Custom tag and indicator on app installation](https://static.airtable.com/blocks/images/developer_hub_guide_indicator_non_collaborator.png)

Like legacy apps, your name, profile picture and email address will be visible. This is not currently customisable, but
will be in the future.

## App distribution links

From the page for a custom app, click the Distribution tab to create a distribution link for your custom app.

![My Custom Apps distribution page](https://static.airtable.com/blocks/images/developer_hub_guide_distribution.png)

Users with the link will be able to install your new custom app in any bases in Pro or Enterprise workspaces where they
have creator permissions. These installations will receive any updates you release via `block release`. Like app
installations, your name, profile picture and email address will be displayed on the link.

![Unlisted link page](https://static.airtable.com/blocks/images/developer_hub_guide_unlisted_link.png)

**One important thing to note**: while you can delete the link later on, this will **not** disable any existing app
installations that others have installed from your link. For now, if you’d like to revoke access to your app completely,
we recommend deleting the link and using `block release` to update the app to remove any desired functionality.

## Known limitations & future improvements

"My Custom Apps" is in its very early stages right now. We wanted to get it into your hands for feedback ASAP, but
there’s a lot more we want to build.

Here is a non-exhaustive list of some of the things on our radar. We’d love to hear what would be the most useful for
you—see the next section for how to tell us your feedback.

- Customising the name, picture and email address displayed for your app
- Allowing multiple "app collaborators" with different permission levels (for example, multiple developers who can each see the app in "My Custom Apps"; multiple read-only users who can see the app in the marketplace but not in "My Custom Apps")
- Allowing developers to customize the app install link landing page (for example, adding a description/icon/developer contact details)
- Allowing legacy apps to be upgraded to new custom apps (including converting existing installations)
- Viewing analytics about your custom app in "My Custom Apps" (for example, install count)
- Managing your marketplace listing from "My Custom Apps" (for now, you must still do this via `block submit`)

## FAQ

**After joining the beta, can I still use block submit to update my 3P apps?**

Yes, `block submit` will work for legacy custom apps that you already have, as well as your new custom apps.

**What happens to my legacy custom apps after joining the beta?**

You can still use existing installations of your legacy custom apps, create new installations, and develop it as
before—the only change is that you can no longer create new legacy custom apps. All apps you create after joining the
beta will be "new" custom apps.

**Where can new custom apps be installed and used?**

As the developer of the app, you can install and use your new custom apps in any base you have creator permissions in,
including within Free or Pro workspaces. To do this, install the app from the "Custom apps" section in the Marketplace.
Note that for Free or Pro workspaces, the app will be disabled for other collaborators viewing the base.

Unlisted links can only be used to install custom apps in Pro or Enterprise workspaces.

## Feedback and troubleshooting

We deeply appreciate your participation in this beta and would love to hear your feedback—it will help shape what’s next
for "My Custom Apps".

Please submit your feedback [here](https://airtable.com/shrRHGy6L8ZwMM0gZ)—we'll be checking that form regularly. For
support, please contact apps@airtable.com.
