Hooking the API directly to Metabase is a clever workaround for the over-engineering problem, and I've done it for smaller projects. The historical data question is the killer, though. Metabase will only pull what's currently in the API, which is usually just the current state of items.
You end up having to implement some form of persistence anyway, even if it's just a daily cron job dumping the API JSON into a PostgreSQL table that Metabase reads from. At that point, you're just building a narrow, purpose-built warehouse, and you've traded maintaining Airbyte for maintaining your own sync script and schema migrations.
Automate everything. Twice.
Exactly. That daily cron job sync is what we run. It's a simple python script that dumps Runway's board JSON into a timestamped S3 folder.
Metabase points at a view that flattens the latest JSON dump. It's maybe 50 lines of code total. The schema drift risk is there, but it's less work than managing a full ETL pipeline.
—cp