AMA Custom Blocks Contest Edition #4 - Ask You Anything (AYA)

We’re advancing into the last week of the custom blocks contest (Submission deadline: July 6). This will be our last AMA in this series - with a twist! We’re turning it around to you: Ask You Anything (AYA).

We’d be interested to hear from you about one rose, one bud, and one thorn of your custom blocks beta experience so far. To be more specific:

Rose: Something that delighted you about the platform
Bud: Something new that the custom blocks platform unlocked for you, whether it’s a new workflow or new value in Airtable
Thorn: What is your top feature request or challenge that you ran into?

The thread is open for the next week and the 3 most insightful posts will win a $40 Amazon giftcard. Feel free to keep it under a sentence each. A member of the Airtable platform engineering team will select the winner at the end of day on Thursday (7pm PT).

2 Likes

Thanks, @Michelle_Valentine, @Kasra, and the rest of the Custom Blocks team!

Rose

Being a pretty new developer, I have found that React.js has a substantial learning curve. Despite that, Airtable’s excellently crafted SDK for Custom Blocks eased much of the learning process. All of the hooks that Airtable made available were absolutely indispensable for someone who is still trying to understand exactly how a “hook” works! The fact that I do not have to worry about figuring out how to trigger re-renders made developing on the SDK so much simpler.

The UI Components provided by the SDK were also a wonderful blessing! Having these pre-packaged, easily-configurable UI elements reduces the time to develop an excellent looking Block by a huge amount – probably upwards of 70%.

Overall, I am absolutely delighted that I have been able, as a novice, to develop some solid, useful, and beautiful blocks to augment Airtable’s functionality in a reasonable amount of time.

Bud

The Custom Blocks platform unlocks so much functionality in Airtable that wasn’t there before that it’s difficult even to focus my brain towards a single avenue for answering this question! In general, the Custom Blocks platform has unlocked the ability for me to meet the needs of consulting clients, without having to turn to other web tools, in a lot more cases. And to my mind, the biggest benefit realized from this fact is stability of the system as a whole. Web API’s are improving and expanding rapidly, but it remains true that the more separate services you introduce and the more connections you try to maintain in a software system, the more fragile it becomes and the more places for failure it assumes.

Custom Blocks provide the opportunity for immense amounts of flexibility in complex data processing, without requiring the cost of additional services, and eliminating the fragility creating and maintaining those connections. The existence of Custom Blocks will, for most cases, remove that slight hesitation I feel at suggesting Airtable as a platform for a client that I know will need more complex workflows or any degree at all of automation!

Thorn

Because the majority of the JavaScript package ecosystem is available to developers on the Custom Blocks platform, it’s difficult to find holes that couldn’t be plugged by external libraries. It’s likely the case that if Airtable’s SDK doesn’t provide, there is some library that does. So I think, for me, the biggest open-end with the Blocks platform is how Airtable will facilitate distribution of maintenance done on Custom Blocks.

There is an argument to be made that Custom Blocks should be just that… “custom”. If I build a Custom Block for Client A to meet their specific needs, it should be built and tailored exactly to those needs and to the shape of their base. It’s unlikely that a Block built with this mindset will exactly fit the use-case and data-structure of Client B, and so Client B will get their own Custom Block. But I can’t help but get the sense, from these contests, from the open-source nature of the Blocks, from the way Airtable addresses the use of these Blocks, and from Airtable’s own Blocks, that Airtable hopes for many of the Blocks built by the community to be widely available and usable by their user base, much of which is non-technical and will not be able to modify/customize source-code. It’s difficult to reconcile “Github Repos as a distribution method” with this democratic ideal of easy-to-use, community-built blocks that are well kept and maintained.

I guess the “thorn” for me is seeing a potential future where I end up with a mess of Custom Blocks and forks of Custom Blocks and emails and GitHub issues requesting updates and features from people I don’t even know making me wish I had never ventured in to developing something nice and sharing it with the world. Of course, this can never be fully eliminated, but with a good system, the pain of maintaining and distributing Custom Blocks could be mitigated to at least some degree.

Thank you

Genuinely – the Custom Blocks platform (in addition with the Scripting Block) elevated the value of Airtable to me personally, and as a consultant by 1000%. It’s hard to over-state just how big a deal this is for the platform.

:tada::smile::tada::smile::tada::smile::tada::smile::tada::smile::tada::smile::tada::smile::tada::smile::tada::smile::tada:

6 Likes

Rose: Something that delights me about the program is that it exists at all!
Bud: Custom Blocks allowed me to eliminate a couple Integromat/Zapier workflows so I can do everything (in that workflow, anyway) in Airtable itself. The less I have to use third-parties, the better. And when third-party aid is still necessary, the fact that it may now be implemented in a block within Airtable itself with matching UI is a huge plus.
Thorn: Redistribution of blocks right now is a bit of a hassle, hopefully in the future shared custom blocks can be added in with ease. Maybe vetted Custom Blocks get added to the Blocks Library under a new “Blocks by Community” category. This will circumvent the Average Joe who has use for a pre-made custom block having to install Node/React on their system in order to use it.

2 Likes

Rose
Airtable feels just enough.

Explanation: while Airtable focuses on less than a dozen concepts (base, table, record, blocks), it does so with great documentation, examples, and community support. It’s easy to wrap your head (and heart) around it and explain it to others.

Bud
Real-time content.

Explanation: I find this to be the core value proposition Airtable brings to the table. It’s especially powerful for non-technical people.

Thorn
Lack of a creator role.

Explanation: There are community threads that are open for years on this broad topic. It seems that people need to share outcomes with their end-users and hide the configuration. Some try to do it by hiding Table tabs (not doable), others try to do it by linking to other Bases where to store this info, and share outcome Bases (not doable), and finally, others try to do it by sharing blocks directly, which again would have the configurations hidden (in Beta, will solve this issue for some).

In other words, a good amount of people are looking at ways to share the result of their creation (eg - a PNG), and not access to the “source code” (eg. a PSD). Even if it’s in read-only mode, it still defeats the purpose as it can affect how people interact with the Base by seeing the info that’s in it.

This creator mode would also be the place where the data that end-users input gets saved back to, so not only hiding configurations, but having the ability to be the one who gets back the results is also essential.

1 Like

Rose : Something that delighted you about the platform
To be honest, before I started looking into AirTables, I thought you guys were just another Google Sheets competitor. After I saw the use cases and the things that blocks can do, I was a bit blown away. You guys listed 4 use cases on the main site, but I would go even further and have an auto scrolling carousel of all the use cases that can be used because it adds so much more. In addition, the documentation for developing custom blocks is excellent! Special kudos to whoever did the API – for those who are less familiar with React, there is sample code for people to tinker with – I appreciate that a lot.

Bud : Something new that the custom blocks platform unlocked for you, whether it’s a new workflow or new value in Airtable
For me personally (indie game developer), it acts as a layer of information between our users and our code base. Our use case is we want our users to localization strings for our app without exposing the code to them. We don’t want users updating our codebase directly for obvious reasons, so adding this layer with Airtable and enhancing some of the data that can be automated with blocks and scripts to automate the commits to our codebase.

Thorn: What is your top feature request or challenge that you ran into?
I think if you want developers to continue to enhance the functionality of the Airtable (and to make it more valuable), it could be smart to take a page out of Amazon EC2 plugins and Salesforce and Confluence where they open the platform to developers for them to make extra revenue by creating plugins and blocks specific to a use case. It’s a win for the developer (they get $$$ from their efforts), it’s a win for Airtable (more subscription revenue and retained users) and a win for clients (they don’t have to hire consultants to build custom blocks). I would certainly build more plugins on Airtable if that were the case!

Best,
Tom

1 Like

Tom, I’m curious to know what limitations you see to the current platform, that prevent you from building blocks and charging for them.

I believe all blocks need to be open source at the moment: https://airtable.com/developers/blocks/guides/polishing-your-block

@Tommy_Chan
I think those are guidelines for IF you want to open-source your block. I think a block can still be released into a base from a private repo. And I think you can release a block into multiple other remote bases from a private repo.

I think the blocks submitted for the contest have to be in a public repo just so that Airtable can access the repo and accurately assess the quality of the block code, security, etc, for the sake of judging accurately.

2 Likes

Just for the competition. But look at all the other services that are built as blocks, and offered as SaaS. My take on this is that there needs to be more focus on discovery and a process in place for submitting to Airtable. But other than that it’s a good start.

1 Like

Rose
The quality and clarity of the documentation and examples code. It was rather simple to start developing

Bud
A possibility to replace the tools like Integromat with custom blocks for some use cases, such as sending SMS, messages in Telegram, scheduling publications in social media. I can do many things now not leaving Airtable. Still investigating new use cases.

Thorn

  1. A possibility to run several blocks simultaneously in development mode. I didn’t find out how to specify a different port on block run. It would be useful to test several blocks that work with the same table in development mode.
  2. Better logging after running block release. For example, I forgot to switch to a recommended node version and it was not possible to understand the reason for the error when building my block.
  3. A better way to share blocks with other users.
  4. Developer’s Slack or Discord to share ideas
1 Like

Rose + Bud:
Up until the contest I didn’t used airtable much, I had a look at it only briefly. Now I looked more closely and I can say that Blocks really do seem like a feature seriously improving Airtable potential usage. I’m looking at possibility to build custom CMS/dashboards for small companies/startups who doesn’t have budget for fully custom apps. So, realtime interactions/updates, full power of React, ready-made widgets - those are quite valuable features of Blocks SDK.

Thorns:
in a very few words. In no particular order. I’m sure most of those points already were discussed, so nothing fancy here, but anyway:

  • need more tools to help development - ability to edit globalconfig inside “block debug console”. Should react dev tools work in dev block? (I wasn’t been able to use it)

  • need more samples for “low level” - with watch/unwatch, useWatchable

  • need life cycles of blocks - “install”, “uninstall”, “first-run”, “started”, “new version of block”

  • would be good to have store of paid-once/subscription-based blocks where payments taken care of by airtable dev-team. So developer would be free from hassle of payment operations

  • need many more widgets in UI. Or some easy way to use existing 3rd-party widget library. (I tried setup prime-react but failed due to being novice in this area)

  • would be good to had tutorial for devs who come from Google Apps Script grounds (like me)

  • how to publish/deploy block to only selected people (custom CMS for organization)?

  • think about different system of permissions for blocks - so, “commenter” user could save some data in block settings

  • about “unstable API” - not quite clear how to handle it. How often will it change? Will I, developer, know about changes before it happens or my block just suddenly will stop working?

2 Likes

@Openside’s BuiltOnAir community Slack has a dev topic:
https://app.slack.com/client/TER3S8LDV/CH1PQF59P

If you’d like to join, you can do so here: https://builtonair.com/join

Rose : Something that delighted you about the platform

  • Documentation and code examples are wonderful. More example code the better, especially with the range of reference example Blocks.

Bud : Something new that the custom blocks platform unlocked for you

  • It has allowed me to revisit some of our internal workflows to streamline it to just a single Airtable base versus jumping around between Google Sheets to Google Docs to Email. I’ve gotten a workflow that used to take 20 minutes of app jumping down to just a 5 second click > update > deliver.

Thorn: What is your top feature request or challenge that you ran into?

  • I haven’t got to the publish step yet, but I’m almost to the mindset where I would love to be able to run a Block fullscreen and not have to rely on a view of the supporting tables that are the foundation of the experience. So a feature request here would be ability to just launch a Block directly, full screen.
  • I see comments and feedback specific to isolating the behind-the-scenes configuration and settings so that end users can’t see then, and I definitely see the need of that coming up.

Overall, this hackathon and support on this forum has been a wonderful developer experience.

Rose

Custom blocks completes Airtable’s expansion from a no-code platform to a full-featured rapid application development platform. Airtable now has tools designed for non-coders, emerging coders, experienced coders, and everyone in between. Formulas, Scripting Block, Custom Blocks, and the Standard REST API provide a set of stepping stones for people to develop both useful tools and their coding skills.

The code-curious can comfortably dip their toes into the coding ocean by experimenting with formulas. If writing formulas feels empowering, they can move on to using and adapting scripts without having to setup a development environment. The next step is writing their own scripts. Once a new coder is comfortable writing scripts, building an app with Custom Blocks is the natural next step.

Bud

When I first picked Airtable as an online database tool, I did so in spite of the fact that Airtable was marketed as a no-code platform and there were very few ways to customize the front end. Now, Custom Blocks provides a method for creating a completely customized front end. While power users will always want to see the underlying data structures, a customized front end with customized business logic can make day-to-day operations much easier. It is even possible to write a custom block that provides all the interaction that low-level users of a base need.

Thorn

Issues relating to distribution of custom blocks and collaborator permissions remain a very big thorn. With custom blocks, there will be more users running code that they themselves did not author. That means that we need protections for the intellectual property of both the code users and the code authors.

Currently, only a collaborator with creator permissions can install a custom block. If a user wants to install a custom block that he did not write, the user must either give the developer full access to the entire base (and all of the intellectual property the base contains), or the developer must give the user access to his source code. Neither is ideal. While opensource code has its place, the ability to keep source code private when desired is also important.

Rose: Love the fact it’s based on react, great clean api with nice generalizations (i.e. watchable, loadable), easy to setup and to get going, love the …ifExists functions - really simplifies code. Great open source examples, they really helped a lot.

Bud: As a consultant and ISV, really opens opportunities to start packaging my solutions and providing them at scale. In general, similar to shopify and other ecosystems, the blocks api is going to give a huge boost to Airtable’s ecosystem, and increase the amount of workflows and problem solved the platform is going to support, via 3rd party blocks in the ecosystem.

Thorn(s):

  1. Always on server side code that’s part of the block - quite a few of my use cases require server side code - and right now it’s implemented using code external to airtable that uses the regular api (which also prevents me from reusing code written in blocks, since the apis are different). A solution where I don’t have to deal with server side devops and it’s just part of the block’s server side code can really simplify creating apps on top of airtable. As part of it, webhooks notifying of changes to the data model can really open up a lot of opportunities todo amazing stuff on top of the platform (yes, you can poll but it’s not the same - code is more complex and responses to data model events are not real-time). See shopify for a great complete webhooks implementation on their entire data model.

  2. Use my own bundler and bundling config for blocks - i.e webpack, rollup or even browserify but with my own config. Right now not being able to do that:

2.1. Was probably the most time consuming thorn in my blocks development experience.

2.2. Increases my bundled block size significantly, and increases block loading time significantly.

2.3. Prevents me from splitting my code using async imports.

2.4. As the number of blocks I need to maintain increases and that share code - to date, I still haven’t figured out how to optimally share code between blocks and being able to improve my libraries as part of working on my blocks. Examples from the airtable team on how they do it internally would be highly appreciated.

All in all, really really excited about custom blocks and the opportunities it opens up not only for me but for all airtable aficionados :slight_smile: .

Best,
Ronen Babayoff
Superblocks.at

I will be brief.

Rose: I am impressed by the documentation [concise wording, animated gifs], the modular aspect of the UI, and the availability of open source blocks.

Bud: ANYTHING that makes programming easier is good!

Thorn: There should be an integrated CLI for node and python, as well as a mobile version of Airtable.

If all goes well, I might be a Block Head.

1 Like

I like it. I’m definitely a Blockhead.

Hi everyone! I’m Emma on the Airtable platform engineering team and we are thrilled to see so many thoughtful responses. The three highlights for me were: @Jeremy_Oglesby , @Kamille_Parks , and @Yuriy_Klyuch 's responses! We’ll be following up with them via email after the holiday weekend with their gift card rewards. Good luck to all in the final stretch of the blocks contest.

3 Likes

You can force a block into fullscreen mode. Check out the documentation on the Viewport and the ViewPortConstraint for details.

2 Likes