Authors
Elliot Gunn
Product Marketing Manager
If your team runs dbt, the question comes up fast: dbt Core or dbt Cloud? Both run the same underlying transformation engine, so the choice isn’t about SQL models or testing logic. It’s about where you want to own operational complexity. In practice, the decision usually hinges on one question: do your dbt jobs stay entirely within dbt, or do they need to connect to other tools in your stack?
I’ll compare both options across infrastructure management, development environment, scheduling, collaboration, and cost, then offer a framework for making the call based on your team’s context.
At its heart, dbt is a transformation engine that allows you to build, test, and document data models using SQL. The choice between Core and Cloud isn’t about the transformation logic itself, but about how you operationalize it.
dbt Core is the open-source, command-line tool that started it all. It provides the fundamental capabilities to compile SQL SELECT statements into tables and views in your data warehouse. With dbt Core, you have a powerful framework for modular data modeling, automated testing, and documentation generation.
Because it’s a CLI tool, dbt Core gives you complete control. You are responsible for setting up your development environment, managing dependencies, and scheduling job runs. This typically involves integrating it with other tools like a version control system (Git), a local IDE (like VS Code), and an external orchestrator to run dbt Core in production. The dbt CLI plugin is the engine that executes your dbt run or dbt build commands.
dbt Cloud is a commercial SaaS platform built on top of dbt Core. It provides a comprehensive, web-based solution that handles not just the transformation but also the entire development and deployment lifecycle. It includes a browser-based IDE, a built-in scheduler, seamless Git integration, CI/CD automation, and tools for collaboration and documentation hosting.
With dbt Cloud, the focus shifts from managing infrastructure to building data models. It’s an all-in-one solution designed to accelerate development and simplify operations for data teams. While it offers less direct control over the underlying environment, it significantly reduces the operational burden. Even with its built-in scheduler, many teams find they need a more robust solution for orchestrating dbt Cloud jobs as part of a larger ETL pipeline with tools like Airbyte.
The decision between dbt Core and dbt Cloud hinges on several key trade-offs. Here’s a side-by-side summary before we break each one down.
| Dimension | dbt Core | dbt Cloud |
|---|---|---|
| License & cost | Open-source (Apache 2.0), free | Free Developer tier, paid Team/Enterprise plans |
| Hosting | Self-managed (your infra) | Fully managed SaaS |
| Development environment | Local IDE (VS Code, PyCharm) + CLI | Web-based IDE with Git integration |
| Scheduler | None (bring your own orchestrator) | Built-in scheduler + API triggers |
| CI/CD | Self-built via GitHub Actions, GitLab CI, etc. | Native CI checks on pull requests |
| Collaboration | Git workflows, self-hosted docs | Shared environment, dbt Explorer, hosted docs |
| Security & governance | DIY (auth, secrets, access control) | RBAC, SSO, audit logs out-of-the-box |
| Observability | Provided by your orchestrator | Built-in job monitoring + metadata API |
| Best for | Engineering-heavy teams needing full control | Teams optimizing for speed and low ops overhead |
| Operational overhead | High | Low |
Teams often get this wrong in one of two directions: choosing dbt Core for cost reasons and discovering six months in that they’ve built a fragile orchestration layer that costs more in engineering hours than a dbt Cloud subscription would have, or choosing dbt Cloud and finding its scheduler too limited once pipelines cross tool boundaries.
Choose dbt Core if your team:
Choose dbt Cloud if your team:
Four factors tend to drive the decision:
Smaller, highly technical teams may find the control of dbt Core appealing. Larger teams or those with a mix of analysts and engineers often benefit from the structured, collaborative environment of dbt Cloud.
For simple projects, the overhead of setting up dbt Core with an orchestrator might be unnecessary. As your projects grow in complexity with more models, dependencies, and developers, the managed environment and CI/CD features of dbt Cloud become increasingly valuable.
Calculate the Total Cost of Ownership (TCO). For dbt Core, factor in the cost of engineering time for setup and maintenance. For dbt Cloud, weigh the subscription fee against the productivity gains and reduced operational burden.
Where dbt sits in your end-to-end data pipeline shapes the answer, and for most teams at scale, this factor alone determines the call. Do you need to trigger dbt jobs after an ingestion tool runs? Do you need to run data quality checks or trigger a reverse ETL sync after dbt models are updated? Your integration needs will influence whether a simple built-in scheduler is sufficient or if a more powerful, universal orchestrator is required. This is where a platform for modern data engineers can unify your stack.
Regardless of your choice, a universal orchestration platform like Kestra can enhance your dbt workflows. Because Kestra is language- and tool-agnostic, it can manage dependencies across your entire data stack.
For dbt Core users, Kestra provides the missing scheduling and operational layer. You can define your entire ELT workflow in a single declarative YAML file, from running parallel Airbyte syncs to triggering dbt Core transformations. Kestra’s event-driven triggers and 1300+ plugins let you build resilient, production-grade pipelines around dbt Core. For a full walkthrough of Git sync, task runners, and the code editor setup, see building scalable dbt workflows with Kestra.
id: dbt-core-runnamespace: company.teamtasks: - id: git-clone type: io.kestra.plugin.git.Clone url: https://github.com/your-org/dbt-project.git branch: main - id: dbt-build type: io.kestra.plugin.dbt.cli.DbtCLI runner: DOCKER commands: - dbt buildFor dbt Cloud users, Kestra extends orchestration beyond the transformation layer. While dbt Cloud can run its own jobs, Kestra can manage the entire end-to-end data flow. You can use Kestra to trigger an ingestion job, call the dbt Cloud API to run a transformation, and trigger a reverse ETL sync, all tracked in a single observable workflow.
The choice between dbt Core and dbt Cloud is a classic trade-off between control and convenience.
Whichever you choose, dbt is one piece of a larger data stack. As your pipelines grow to include ingestion, data quality checks, and downstream syncs, you’ll want an orchestrator that can manage the full flow, not just the transformation step.
To learn more about building and orchestrating data workflows, explore our Data Engineering Resources and see how you can build more reliable data pipelines with Kestra.
Stay up to date with the latest features and changes to Kestra