Dango
Open-source data platform for small teams.
Dango gives you a complete data stack — ingestion, warehouse, transformations, and dashboards — with the operational machinery a self-assembled stack doesn't have: sync queue management, lock recovery, empty-replace protection, schema drift detection, credential health checks, and backups. It combines dlt for data loading, DuckDB as the analytics database, dbt for SQL transformations, and Metabase for dashboards. One pip install, one command to start.
Upgrading from v0.1.x? v1.0.0 is a complete rewrite. Back up your data and run
dango initto create a new v1 project. See the migration guide for details.
Quick Start
Prerequisites: Python 3.10-3.13, Docker (for Metabase and dbt docs)
mkdir my-project && cd my-project
pip install getdango
dango init
dango start
Open http://localhost:8800 to see your data platform.
Or use the install script:
curl -sSL https://getdango.dev/install.sh | bash
For detailed installation instructions, see the documentation.
Use Dango with your coding agent
dango mcp setup
Connects Claude Code, Cursor, or Windsurf to your project over MCP — your agent can list sources, inspect schemas and lineage, run read-only queries, and (with your permission) trigger syncs, run dbt, and scaffold new models. See the full guide for the complete tool reference and worked examples.
Features
- 35 data sources — Stripe, Google Sheets, Google Analytics, Shopify, PostgreSQL, MySQL, CSV, REST APIs, and more
- Auto-generated dbt models — staging models created automatically when you add a source
- Data catalog — browse tables, columns, and profiling stats; view dbt lineage and test results
- Web dashboard — monitor syncs, manage sources, and view platform health
- Metabase integration — dashboards and SQL queries, auto-configured and ready to use
- Scripts — schedule custom Python scripts alongside your syncs; runs on a schedule with access to your warehouse
- Cloud deployment — deploy to DigitalOcean or any server with
dango deploy - Authentication — admin login, user management, 2FA, API keys
- Schema drift detection — get alerted when source schemas change
- PII scanning — detect personally identifiable information across your tables
- Notebooks — Marimo notebooks connected to your DuckDB warehouse
- Monitoring — metric tracking with trend detection and drill-downs
- Scheduled syncs — cron-based scheduling with queued execution, retry, and timeout handling
- Webhooks — Slack notifications for sync results and alerts
- Local backup —
dango backuplists and restores local project backups - File watcher — auto-sync when CSV files change on disk
Screenshots
Data Sources page — monitor syncs, row counts, and schedule status for all your data sources.
Data Catalog — browse tables, explore columns with profiling stats, view data lineage.
dbt Models — view model status, run transformations, and track test results.
Architecture
Sources → dlt → DuckDB → dbt → Metabase
(APIs, (load) (warehouse) (transform) (dashboards)
CSVs,
databases)
All data stays local in DuckDB. No external warehouse needed.
Tech Stack
| Component | Tool | Role |
|---|---|---|
| Ingestion | dlt | Load data from 35 sources |
| Warehouse | DuckDB | Embedded analytics database |
| Transformation | dbt | SQL modeling and testing |
| Dashboards | Metabase | BI and SQL queries |
| Web UI | FastAPI | Monitoring and management |
| Containers | Docker | Metabase and service orchestration |
Documentation
Full documentation at docs.getdango.dev.
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
Apache 2.0 — see LICENSE for details.
Known limitations
Dango is honest about what it doesn't do yet. The short version — full detail at docs.getdango.dev/reference/limitations:
- Single-writer concurrency until the Quack migration lands (DuckDB 2.0)
- No streaming, CDC, or reverse ETL
- 35 sources today, added on demand
- BYOS deployments need to configure their own backup destination (warned at deploy time)
Links
Release files for getdango 1.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| getdango-1.0.8.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getdango-1.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.2 MB
Release files / getdango-1.0.8.tar.gz
| Download URL | getdango-1.0.8.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a23ab6ab082ca17abca5b817b74393bdab4bd5abaefdad41a89d09b1d6d42ce
|
|
BLAKE2b-256 checksum How to use checksums |
63d032e657c416bb52755eb559b2e6ef51c8dd27d750bfcc799b913950cbd54c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / getdango-1.0.8-py3-none-any.whl
| Download URL | getdango-1.0.8-py3-none-any.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ff97b84544cf4a902c82fce4aa07c65ca7a117107d956b42bfda5814bd1d032
|
|
BLAKE2b-256 checksum How to use checksums |
cfc4eb6b7784f405a0d116fe93eb3e86c057df841732780ffe8f305f67860c6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|