I've finished migrating off Airtable two months ago — to a custom Next.js + Postgres app. The move itself wasn't the hard part.
The hard part was discovery. Every time I thought I had the schema mapped, something new showed up. A lookup field behaving like a rollup. A linked record set up as single-link but actually used many-to-many. A singleSelect with three values that were actually the same thing, just typed differently.
This tool is what I wish I'd had in week one instead of week five. It won't migrate anything for you, but it'll stop you from discovering half your edge cases on a Saturday night.
Sample report (real base, anonymized — 7 tables, 37,688 records):https://mperlak.github.io/airtable-migration-audit/examples/...
One blind spot the tool can't see: automations, interfaces, Zapier/Make webhooks aren't exposed through the Airtable API. You document those parts yourself.
How are people currently handling this? If you've migrated off Airtable (or Notion databases, or Google Sheets), what did your process look like? Did you write scripts for it, or do it manually?
Full disclosure: I also work on Straktur - a Next.js starter for building internal tools with AI coding agents (Claude Code, Codex, Cursor, Gemini). This audit tool is MIT, runs locally, doesn't require Straktur for anything.