Airtable is not my typical data layer for a web app, but recently I've found great potential in the "spreadsheet-database hybrid" that functions as a "low-code platform for building collaborative apps". Its nature combining the ease of use and familiarity of spreadsheets with the power of relational databases lands it in a particularly interesting niche. Today I'll be talking about the stack I used, the benefits, and the potential of Airtable as an API-data layer.
Airtable's logo echoes its modern look and feel, also it's a nice linebreak!
The Stack In Question: Airtable + Gatsby(React-GraphQL) + Netlify:
Gatsby: it's fast, it's familiar to React developers, and it has an Airtable plugin!
Behold, a data layer! (The Airtable In Question, that is.)
I'm sure you've been chomping at the bit to hear about hosting and get to see the results. For hosting, I used Netlify, a suggested method for deploying Gatsby apps and a favorite for hoisting up quick little projects onto the net for me with its GitHub integration and easy-to-use interface.
Netlify is great, it's so easy and fun, it's worth getting your own first-hand experience, maybe with Gatsby!
Moment of truth, here is the little, humble listing app of resources around graph data that I tossed together as a proof of concept. (Ignore the badly cropped logos, or don't and roast me, that's still engagement with content, I'll take it.) Take a look, see how it lines up with the table above!
Why's this stack cool? The benefits:
Let's get down to why I find this pretty darn neat. First of all, data literacy not required! Airtable is a potent platform for end-users without say, SQL chops, WHERE they don't know a WHERE from a HAVING for example. It's good for quick data entry and manipulation or management. This allows for users driving an application, owners and such, to work with a developer (like say, me) in curating the data with little toil.
Secondly, I keep saying: rapid development. This was all quick to put together once I figured out/decided on the stack, as fast as a Gatsby site with all its SEO powers, one might say.
I can't overstate the value addition of these two factors. Being able to spin up a quick site that can be collaborated on or even given over to owners of data who aren't relational database wizards has great potential. However, there is a drawback: at least with how I did it using that starter, there's not real-time data reflection on changes. That's to say, the Airtable can be out of sync with the app, requiring an oh-so-hard(it's really quick and easy) trigger to deploy over on Netlify. Moving forward, I'm going to be looking into ways to resolve this should I continue exploring this stack.
To reiterate a bit, the potential:
Time to wax a bit poetic and hammer home what the potential is here. The first big win is easy data entry and management by end-users without much technical skill required. This leads to the second big win, easy cooperation between technical and non-technical creators and/or stakeholders. Finally, I encourage you to think about the extensibility of the stack -- Gatsby has a great ecosystem as mentioned, Airtable in addition to being easy to work with has a lot of features(many of which I haven't even touched, let alone the ones I'd have to pay money for, which I'm sure are super awesome.)
Some final hot(spicy) Air(table):
To wrap up, Airtable makes a great, friendly data layer in its own unique way. I've seen very little about this use for it, a quick Google did turn up this short article you might want to look at, which includes some caveats I may have glossed over in my excitement to using Airtable as an API. Thanks for following out this atypical approach to a data layer and use of Airtable, hopefully, you can apply some of this in your own work, or at least found it neat!