o a few things happened last week that got me thinking about code.
I released Learn Airtable scripting series last week which you all seem to be enjoying! It brought me back to this piece I wrote on why I thought I was ready to learn to write scripts. To go to the dark side of writing code.
And then there was last week's twitter kerfuffle pitting "no-code" against "code". This debate is so played out that I don't even feel the need to link to it. In summary: a developer dismissed no-code since it doesn't provide the same level of safeguards for common issues that code deals with like versioning, testing etc. They're right (I've written about the issues here) but incorrectly assumes that no-code wants to replace code and therefore requires all of those things. Which, you know, we should kind of expect since we've named our world in opposition to theirs!
Naturally, no coders felt like this was gatekeeping and came to its defence.
Frankly, we were trolled.
That said, this did get me thinking about what I believe is the most powerful approach to building: picking and choosing the best of each world. What that means to each person is very different.
For a developer, the only thing they may want to abstract is the relation database with Airtable and custom code the rest. Hell, even Zapier may feel like too much when you're a master of using Webhooks (self-plug: don't know what a Webhook is? Come to the stream this week and you'll learn!)
Take this Colbyashi Maru stream where James Q Quick uses Airtable scripting + Cloudinary to create custom Youtube Thumbnails. Does this feel like absolute overkill to me? Yes. For roughly the same output, I use page designer to create the overlay and then screen shot it back into Airtable (here's how I do that).
Does it feel that way to James? No! For him, writing a custom script that calls a serverless function with Cloudinary is easy! It took him an hour and he ends up with precisely what he needs. To him, 5% no-code and 95% code is great. It's the level of abstraction that he enjoys. I prefer the 5% code and 95% no-code give or take 5%.
Just like no developer should feel scared of no-code and camp themselves in it's all code or its worthless, we shouldn't camp ourselves in a no-code or die mentality.
We all gain from learning a little bit of code and I'm sure every developer will gain from learning a little bit of no-code!
Why use scripts in Automations?
Speaking of code, there's the Run script action in Airtable automations which... runs a script! Questions I get relatively often are a/ why would you run a script in automations b/ what are the advantages of running it in an automations vs stand-alone.
Why run scripts in an automation?
The scripting action is an escape valve in that you should only use it if you can't accomplish what you hope with existing triggers. It could be an Airtable action that is unavailable such as deleting a record or updating multiple records at once. Or it could be an external application that has no connection today. With the script action you can run an API call to fetch information in 3rd party tools that don't yet have a direct Airtable connection. You can also trigger webhooks and other non-existent actions.
What is the advantage of running a script in an automation?
Before, the main advantage was that you wouldn't run into CORS errors since the API calls were sent from Airtable's servers but this is no longer the case with remotefetch being available directly in the scripting app.
That said, the advantage is that your script will run in the background without needing a user to trigger it! Duh! That also means that you have to ensure that your script has all edge cases covered (especially if you're deleting records).
If you want a primer on running scripts in Airtable automations, check out the 4th part of Learn Airtable scripting.
Happy building
Aron
PS I will off next week, see y'all in 2 weeks <3