← Back to Blog

Simple Realtime CRUD + Airtable & WebSocket

March 23, 2021
LaravelDockerNode.jsExpress.jsWebSocketAirtableRedis

This project was created as a skill assessment when I applied to a no-code company. The task was to build a page that connects to Airtable, renders data in a table, accepts form submissions that write back to Airtable, and handles thousands of concurrent visitors.

Requirements

  1. Connect to Airtable and render its data in a table format.
  2. Include a form that posts data back to Airtable and shows it in the table.
  3. Withstand thousands of visitors at once.

Limitation

  • Airtable limits API access to 5 requests per second.

Solution

  1. Use Redis to serve a cached version of Airtable data with expire-on-write invalidation.
  2. Use a queue to handle Airtable data creation asynchronously.
  3. Additionally, WebSocket broadcasts submitted data to all connected users for real-time updates.

Simple Realtime CRUD + Airtable & WebSocket

This is the Admin UI where the interchangeable APIs are consumed.

Simple Realtime CRUD + Airtable & WebSocket


Repository