Airtable

What would you get if you put a spreadsheet’s UI on top of a relational database? The answer: Airtable. By doing this, you get the benefits of both - an intuitive, table-based interface for editing combined with a powerful relational model that gives you more robust modeling capabilities.

As someone who doesn’t work in finance or maintain any kind of accounting books, I find that most of the applications I use spreadsheets for aren’t helped by the equations systems provided by Google Sheets or Excel. It’s these applications that Airtable is designed for, and because of that it lets you talk about concepts like inter-table (inter-sheet, for spreadsheet enthusiasts) relationships as first class entities rather than as the result of a lookup.

Those relationships also enable richer experiences which previously were only familiar to developers: being able to trace records through chains of links and discover new relationships, make robust queries based on the values of child or parent fields, and filter views easily without breaking the relational model are features that a database provides which a spreadsheet does not.

To demonstrate the utility of the approach, let’s look at an example application - tracking a small inventory of electronics parts. Airtable comes with a wide variety of examples, and I’ve adapted one to help me organize my components and keep track of what is being used in which project.

It all begins with a parts table. Here, I keep track of each type of item I have and some data such as how many units of that item are in stock, how many are being used, where the part is stored, and how much it costs.

clojure.lang.LazySeq@dc00dd5b

When I order parts, I add an entry to the Orders table to track the shipment; this also updates the quantity on order in the Supplies table.

clojure.lang.LazySeq@d4745633

When a part arrives and is assembled into a project, it is added to the Assignments table to track its consumption and provide an estimate of the total project cost.

clojure.lang.LazySeq@39dfc08

Each of the tables has a relation to the others which helps to capture information about what parts are where, how much I’m spending, and what I have on hand. In the future I might also add datasheets, part images, bar code scanning, and other helpful features to consolidate the inventory information in a single location. Airtable makes it easy to do this, and I’ve been having a blast exploring it and adapting it to my needs.

If you like what I write, you can subscribe to my mailing list to get new posts in your inbox: