[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog:index::dbt":3},{"page":4,"tags":43},{"items":5,"meta":38},[6,18,29],{"id":7,"slug":8,"title":9,"excerpt":10,"tags":11,"read_minutes":16,"published_at":17},"488d06c7-e036-4df1-a0ab-0b5a85fb6cbe","anatomy-of-a-bi-pipeline-airflow-dbt-duckdb-superset","Anatomy of an End-to-End BI Pipeline: Airflow, dbt, DuckDB & Superset","A complete walkthrough of a production-style data pipeline we built for a five-store restaurant chain — incremental extraction to Parquet, a tested dbt warehouse on DuckDB, Airflow orchestration, and seven Superset dashboards. All open-source, all code, with screenshots of every layer.",[12,13,14,15],"Data Engineering","Airflow","dbt","Superset",17,"2026-07-12T00:00:00Z",{"id":19,"slug":20,"title":21,"excerpt":22,"tags":23,"read_minutes":27,"published_at":28},"e07750cd-8d9a-4c35-8e9c-b63dcb59f367","zero-trust-data-governance-and-quality","Zero-Trust Data Governance: Automating Quality and Access in the Pipeline","Manual data quality checks and hand-managed permissions don't scale. Contracts enforced in the pipeline, observability that catches what tests can't, and RBAC as code with dbt.",[24,25,14,26],"Data Governance","Data Quality","RBAC",7,"2026-06-27T00:00:00Z",{"id":30,"slug":31,"title":32,"excerpt":33,"tags":34,"read_minutes":36,"published_at":37},"d5328699-b158-4c93-a106-2bdc4fc8703d","why-dashboards-need-data-pipelines","Your Dashboard Is Only as Good as Its Pipeline","Pretty charts on top of fragile spreadsheets erode trust fast. Why every serious dashboard project should start with an orchestrated, tested data pipeline.",[12,13,14,35],"Analytics",6,"2026-06-18T00:00:00Z",{"has_more":39,"limit":40,"next_offset":41,"offset":42,"total":41},false,24,3,0,[44,47,49,50,51,53,55,57,59,61,63,65,67,68,70,71,73,75,77,79,81,83,85,87,89,91,93,95,96,98,100,102,103],{"tag":45,"count":46},"Architecture",4,{"tag":48,"count":41},"AI",{"tag":12,"count":41},{"tag":14,"count":41},{"tag":13,"count":52},2,{"tag":35,"count":54},1,{"tag":56,"count":54},"Apache Iceberg",{"tag":58,"count":54},"BigQuery",{"tag":60,"count":54},"Careers",{"tag":62,"count":54},"Cloudflare R2",{"tag":64,"count":54},"Cost",{"tag":66,"count":54},"Databricks",{"tag":24,"count":54},{"tag":69,"count":54},"Data Lake",{"tag":25,"count":54},{"tag":72,"count":54},"DuckDB",{"tag":74,"count":54},"FinOps",{"tag":76,"count":54},"Flink",{"tag":78,"count":54},"Go",{"tag":80,"count":54},"HLS",{"tag":82,"count":54},"Kafka",{"tag":84,"count":54},"Lakehouse",{"tag":86,"count":54},"Learning",{"tag":88,"count":54},"LLM",{"tag":90,"count":54},"pgvector",{"tag":92,"count":54},"PostgreSQL",{"tag":94,"count":54},"RAG",{"tag":26,"count":54},{"tag":97,"count":54},"SkillUp",{"tag":99,"count":54},"Snowflake",{"tag":101,"count":54},"Streaming",{"tag":15,"count":54},{"tag":104,"count":54},"Video"]