Help

Re: Custom Blocks update: Apps, SDK v1.0.0, and more

3011 0
cancel
Showing results for 
Search instead for 
Did you mean: 
Emma_Yeap
Airtable Employee
Airtable Employee

Hi,

Thank you for your participation in the Custom Blocks Beta! We have some big updates about Custom Blocks that we’re excited to share with you today. (Airtable has also launched several other new features today—you can check them out in our community announcement and in this blog post.

Blocks are now Apps

Firstly—Blocks are now called Apps! You can read our announcement here to find out more.

This rename doesn’t change anything about how you manage your custom apps - no action is required on your end. The Blocks SDK and CLI are not being renamed and will continue to be published as @airtable/blocks and @airtable/blocks-cli.

apps_custom

Publish your apps for anyone to install

Secondly—we’ve heard many questions about if it’ll be possible to publish your custom app to the Airtable Marketplace (formerly known as the Blocks Gallery). Today, we’re excited to announce an official pathway for any developer to submit their custom app to the marketplace!

With the new block submit command, you can submit your custom app to be reviewed for addition to the Airtable Marketplace. If accepted, every Airtable user will be able to see and install your app from the marketplace. Several of the winners from the Airtable Blocks Contest have already been published to the marketplace, including the Image Markup, Scheduler, and Eazyfields apps.

You can find out more about submitting your app to the marketplace here.

General availability of the Blocks SDK & v1.0.0

Thirdly—the Blocks SDK has graduated from beta and is now generally available. Thank you all for your feedback during the beta—seeing your blocks and hearing your opinions has been instrumental to us as we worked on improving the developer experience.

We’ve also published v1.0.0 of the Blocks SDK. It includes some breaking changes, but as of this release, all existing public APIs in the SDK are stable. We’ll be following semantic versioning for new versions of the SDK going forwards: from now on, breaking changes will always involve a major version increment.

Remotes and future improvements

Lastly—we’ve been listening to your feedback during the beta and hear the community’s concerns about the difficulties with distributing a custom app between multiple bases and keeping it updated. This is something we’re actively working on. Currently, the recommended workaround is to use the remotes feature. Remotes are still in beta—we anticipate major changes and improvements here in the future.

Thank you once more for your participation in the Custom Blocks Beta. We’re excited to be moving to a new phase with Custom Apps, and we can’t wait to see what you build next. As always, we’d love to hear from you—let us know your thoughts at the community forum. We’ll also be hosting an AMA in the Custom Apps community forum at 10:00am PST, Thursday 9/17, where you can ask us any questions you have about this launch. You can find the thread here—feel free to post your questions ahead of time.

The Platform team at Airtable

12 Replies 12

Did the change to Lookup fields affect their ability to be used in <CellRenderer /> components? Right now I’m getting the error “Invariant Violation: linkedRecordIds” when I have any CellRenderers trying to use a Lookup field.

@Kamille_Parks Yup the format of lookup fields was one of the breaking changes. It was listed in the changelog.

  • BREAKING: The cell value format for lookup fields ( FieldType.MULTIPLE_LOOKUP_VALUES ) is now Array<{linkedRecordId: RecordId, value: CellValue}>

It is a simpler format than what was previously appearing. It no longer includes the key/value pairs such as linkedRecordIds, and only has the array. I believe that the exact read format was previously unpublished.
Lookup fields seem to be the root of more issues than any other field type!

Oops, thanks for reporting this Kamille! This is a bug in version 1.0.0 of the SDK (my mistake :grinning_face_with_sweat: ) and we’ll try and get a fix out ASAP. I’ll report back here when that’s ready!

@somehats

Could this change be affecting people who are seeing problems with scripts with lookup fields breaking?

Hey @Kamille_Parks, we just released version 1.0.1 of the SDK which should fix this issue. Apologies for the inconvenience! Would you mind checking that this resolves your issue?

This was a separate (but related) issue to the problem with the SDK, which has now also been resolved. Thanks for flagging!

Alon_Shavit
4 - Data Explorer
4 - Data Explorer

Quick question, can custom blocks make external api calls? can these api calls be subscription based?

Yes, custom apps/blocks can make external api calls. You should refer to the documentation for your external api for how to authenticate your subscription.

BTW, Scripting App can also make external api calls, although you might run into cors errors.

@somehats thanks for the quick turnaround! I don’t see the latest version available through npm yet, though. When I update it still says 1.0 is the latest version. Perhaps I just need to wait later today?

That’s strange! I see 1.0.1 when I visit https://www.npmjs.com/package/@airtable/blocks. If you manually edit your package.json file to set @airtable/blocks to 1.0.1, do you get the latest version then?

I was able to update and my app works again, thank you!

After resolving this issue, we spent some more time verifying lookup field behaviour and discovered some additional issues introduced in 1.0.0 (specifically, using a lookup field with record.getCellValueAsString and aggregators). We’re working on a fix and will publish a new version of the SDK with the fixes next week.

Wanted to give a heads up that we’re aware of this issue and working on it - I’ll update again once the new SDK version with the fixes is released.

Sorry for any inconvenience caused, and hope you all have a great weekend :slightly_smiling_face:

Update: SDK version 1.1.0 is now released, and includes these bugfixes. (You can view the changelog here: https://github.com/Airtable/blocks/blob/master/packages/sdk/CHANGELOG.md)