Skip to main content

Hi all, I've been building an Airtable product called AirDiff over the last ~6 weeks and wanted to share with ya'll since it might be super useful for you. It's built by an Airtable power-user, for Airtable power-users! The tech stack is Next.JS, Typescript, and Tailwind CSS on the front-end, n8n on the back-end, and PostgreSQL on the database layer.I spent a lot of time on UX, design, and making it intuitive and useful so hopefully its reflected if/when using it. The product is like a mini version of Github and Datadog, but for Airtable. (version control, observability, monitoring, historical tracking, analytics).  You basically add a script to any Airtable base, and it'll track all of your schema changes through time (table creation/deletions, field creations/deletions, changing the condition of a field, the text, the choices, table view changes, etc)Some of the things you can do:

  • Generate a developer style Changelog of all of the schema changes over you did on a base over the last day, week, month, etc. (Export it in .md, .json, .txt)
  • Export the current state of an Airtable base today, or what it was 2 weeks ago to debug something that broke automation, a formula, etc.
  • Or export the current base in Markdown so that you can upload the schema into ChatGPT, Claude, another LLM so it can get the full context of the base you're working on instantly!
  • Review all of your bases that you're tracking visually to see if major changes have been made at a high level over the past week.
  • See the growth of a bases's tables, fields, record count through time.
  • Find what the configuration for some of your field's formulas, or Airtable AI agent's prompts were over the last few weeks or iterations.

Product: AirDiff
URL: https://airdiff.modernstack.io/

 

This is dope!  Well done!


@Rob_Weidner1 Thanks!


Hey ​@xcatena,

This looks great! I’m not super sure if I’d be a user myself but I must admit this is cool and super fun.
The best use case I can think of is for when multiple users are making changes on the base (e.g. I build for my clients, clients make a change, things break, they do not know what happened, I do not know exactly what they did). Does it track exactly what user did the change? That would be interesting.

Also, what would the trigger for the automation that runs the script be? Interested to understand how many automation runs this would use.

For last, I think it could be interesting to get e.g. a weekly report that will generate a summary of changes. As a developer it might be nice to send this over to clients?

Just thinking out loud..

Thanks for sharing!!

Mike, Consultant @ Automatic Nation
YouTube Channel here.


Hi ​@xcatena

 

I hope you are doing well. Huge kudos on this app, the UI feels polished, the UX is thoughtful, and the stack choice looks solid. I spun up an account and tested it, and it delivers on the promise. Being able to track schema changes has real value, especially when multiple builders are touching the same base.

A couple of notes and a question:

  • I’m curious about the choice to install a script in Airtable instead of asking for an API key and calling the API from your backend. I can see the upside (offloading some processing to Airtable’s servers and keeping keys out of your system), but it can also add setup friction. Have you found this approach improves reliability or avoids rate-limit headaches? Any guardrails to prevent users from over-triggering the automation and hammering your webhook?

  • The downloadable JSON schema got me thinking: this could be the bridge to schema-driven app generation. Similar to how Lovable reads a Supabase schema to scaffold a front end, your export could prime an AI to understand a base deeply and then generate a custom UI connected to the live Airtable data. With good table/field descriptions, the model would have enough context to spin up front end features with just some straightforward prompts!

If that direction is on your roadmap, I’d love to follow along (and beta test!), or if you want to bounce off some ideas, I’ll be happy to help! Either way, awesome work!


@Mike_AutomaticN Thanks!  Hope you still get to try it someday if you run into a good use case for it, it’s pretty useful even for non-power users.

Does it track exactly what user did the change? That would be interesting.

I looked into this and the scripting API doesn’t expose the user that did the change so I wasn’t able to build that into the scripting, it is mainly schema change information for the Tables, Fields, and Views.

Also, what would the trigger for the automation that runs the script be? Interested to understand how many automation runs this would use.

The platform provides a script and the automation trigger is 100% up to the user on how they want it to fire off, I personally have mine set daily to run at midnight, but you can run it as much as multiple times a day, or as little as once a month.  You can even just run it ad-hoc if you link the script to a Button, like a “Save Schema Snapshot” button type of function.

For last, I think it could be interesting to get e.g. a weekly report that will generate a summary of changes. As a developer it might be nice to send this over to clients?

Great idea!, I’m actually looking into adding more control over notifications, and can look into doing this as well.  Will look into the ability for users to create their own types of notifications (base-level reporting, setting certain triggers / changes)

 


@airvues Thanks a lot for the kind words!  I definitely put time and planning into the UI so that Airtable users can get actual value from this.  I’ve done Airtable consulting & development for all types of Airtable projects within venture capital, manufacturing, tech companies, and Fortune 500 co’s as well and I’ve seen that lots of companies have no insight on what happens in Airtable.  Airtable’s history/snapshots only really let you do a full rollback, but you really can’t tell what the schema was at any given time too easily.

 

I can see the upside (offloading some processing to Airtable’s servers and keeping keys out of your system), but it can also add setup friction. Have you found this approach improves reliability or avoids rate-limit headaches? Any guardrails to prevent users from over-triggering the automation and hammering your webhook?

I’ve actually thought about the webhook side already and I’ve already built in rate limiting for the webhook, you can’t run a second scan on the same Airtable Base ID within ~2 minutes.  There’s also full authentication afterwards and I’ve tested it and it all works pretty well.  The load on the backend isn’t too much and I wanted to make this easy to implement for non-technical users.  There is a large focus the user experience and having a low setup friction so anyone could implement this if they wanted to.

The downloadable JSON schema got me thinking: this could be the bridge to schema-driven app generation. Similar to how Lovable reads a Supabase schema to scaffold a front end, your export could prime an AI to understand a base deeply and then generate a custom UI connected to the live Airtable data. With good table/field descriptions, the model would have enough context to spin up front end features with just some straightforward prompts!

Absolutely!  I provided an easy way to export your base schema (or changelog) in markdown or JSON because I wanted it to be super easy to transfer the content to any AI chatbot / LLM (ChatGPT, Claude, Gemini) but ALSO AI-powered coding agents like Lovable, Replit, Cursor, or Claude Code!  You would be able to spin up a front-end, dashbaord, or anything for your Airtable!  That’s exactly one of the use cases I wanted to highlight even outside of just “seeing your Airtable diffs”.  I’m glad you noticed and I hope to add more to the product for sure as long as there is some user demand for it.


Happy you got to try the product out, hope you’ll continue to use it!  Happy to chat anytime and bounce anything off as well.

 


Hey ​@xcatena,

 

Thanks for the answer. 😃 I’ll try to give it a shot this week and share feedback! 


Reply