Airtable for project planning

A while ago, I found myself with more work than usual, for several different clients. There were about a dozen projects to finish in a few weeks and I was beginning to lose track of where I was with all of them. I looked around at various tools that would help keep on top of all this. Most were too complex for my needs, and very few were free (or nearly free). In the end, I found one I am really happy with.

Airtable is a really simple online database tool with a web interface and mobile/desktop apps. It is not a full relational database, but it has some relational features (just enough for my needs).

User Interface

What makes it instantly appealing is the simple user interface. I have a lot of experience coding database software from scratch. A large part of that is designing the database structure, but even more time is spent designing and implementing a good user interface. 

Airtable example database
Airtable base example

Airtable looks like a spreadsheet. The initial view is a table where you can add named columns of different types such as text, dates, various number formats, formulas and others you might expect in a spreadsheet. It is easy to add new tables and define the fields in each table through the user interface. You can also import existing spreadsheets (in CSV format). 

There are several different views of the data available. The default view is a grid (spreadsheet). This can be customised by filtering on the values of one or more fields (for example, only displaying the active projects for a particular client), by grouping the rows and changing the sort criteria. 

Grid view of Airtable database
Grid view

There is a calendar view, a gallery view (which shows the entries as a series of cards with only the most important information) and a kanban view. Even if you don’t use kanban for project management, it gives a useful overview of the all the tasks in the project.

Airtable kanban view
Kanban view

The formatting of cells in the table view is limited (no conditional formatting or graphs, for example) in the free version. However, the paid-for versions enable more features and also the ability to use plug-ins (“blocks” in Airtable jargon) to further extend the functionality.

Database features

What makes it better than a spreadsheet is that these fields can easily reference other fields in other tables. This instantly creates a simple relational database: in other words, the displayed information will be updated when the other table is changed. Airtable calls a set of related tables a “Base”.

Perhaps because it is designed to be easy to use, there are limitations in the sort of connections you can make between tables and the checking of consistency when changes are made. But it is certainly good enough for my needs.

For many applications, the ease of use and rapid development will be of more value than the complexity of a fully-featured relational database.

Pricing

Like most cloud-based services, Airtable has multiple pricing levels. The free version is fully functional and not time limited. There is a limit to the amount of data but, at 1,200 records (per database) and 5GB of data, it will be enough for me for quite some time. There are various paid-for plans which extend the limits and give access to more features.

It also supports collaboration. You can define a team of people with access to the database. There are different levels of access including view-only, edit and create. You can also create a form view for entering data. You can send the URL for the form to other people so they can submit data into the database.

Conclusions

So now I have a simple database of all my projects, integrated with a basic CRM for details of the clients, and a record of invoices. I can see what needs doing by when, track my delivery dates and when I get paid.

As with any web-based tool, there is a worry that the company might suddenly disappear or remove free access. You can manually export the contents of each table in the database to a CSV file but there is no built in backup of the entire database. However, there is an API so I have knocked up a Python script to dump the contents to an Excel file. Just in case.