havn -- Data in safe waters¶
havn is a self-hosted data platform -- a lightweight, Nordic alternative to Databricks and Snowflake. It uses DuckDB for OLAP analytics, plain SQL for transforms, and Python for ingest/export scripts. All data lives in a single warehouse.duckdb file. No data leaves your machine.
Quick Start¶
pip install havn
havn init my-project
cd my-project
havn jobs run full-refresh
havn serve
Or with Docker:
docker run -v $(pwd):/project -p 3000:3000 ghcr.io/chraltro/havn serve
Why havn?¶
| havn | Databricks | dbt + Airflow | Snowflake | |
|---|---|---|---|---|
| Runs on | Your machine | Cloud | Cloud / self-hosted | Cloud |
| Data stays | Local | Vendor cloud | Depends | Vendor cloud |
| Setup time | 1 minute | Hours | Hours | Hours |
| Cost | Free | $$$ | $ - $$$ | $$$ |
| SQL dialect | DuckDB (Postgres-compatible) | Spark SQL | Varies | Snowflake SQL |
| Templating | None -- plain SQL | Jinja | Jinja | None |
Features¶
Transform Engine¶
Plain SQL with @config directives. Dependencies are auto-extracted from FROM and JOIN clauses, so the DAG builds itself. SHA256 content hashing means only changed models rebuild. No Jinja, no templating, just SQL.
Data Quality¶
Inline assertions (@assert row_count > 0, @assert unique(id)), YAML contracts, column profiling, and freshness monitoring.
Connectors¶
Pre-built connectors for PostgreSQL, MySQL, Stripe, Shopify, Google Sheets, REST APIs, S3/GCS, CSV, and webhooks.
Web UI¶
React SPA with Monaco code editor, interactive DAG visualization, table browser, query runner, and notebook support.
AI-Native¶
Ships with CLAUDE.md, .cursorrules, and Copilot instructions. Run havn context to generate an AI-ready project summary.
Single-File Database¶
Everything in one warehouse.duckdb file. Back up with cp. No servers, no clusters, no cloud accounts.
Architecture¶
Ingest Scripts (.py / .dpnb)
|
v
+-----------+ +----------+ +----------+ +----------+
| landing | ---> | bronze | ---> | silver | ---> | gold |
| (raw) | | (cleaned)| | (business| | (consume)|
+-----------+ +----------+ +----------+ +----------+
^ |
| v
External Sources Export Scripts
(APIs, DBs, files) (reports, APIs)
- landing -- Raw data ingested from external sources via Python scripts or notebooks
- bronze -- Light cleanup: column renaming, type casting, deduplication
- silver -- Business logic: joins, aggregations, calculations
- gold -- Consumption-ready tables for dashboards, APIs, and reports
Documentation¶
| Category | Pages |
|---|---|
| Getting Started | Getting Started, Configuration, Environments |
| Core Concepts | Transforms, Pipelines, Seeds, Sources |
| Data Integration | Connectors, CDC |
| Data Quality | Quality, Contracts, Lineage |
| Security | Auth, Masking |
| Advanced | Scheduler, Notebooks, Versioning |
| Reference | CLI Reference, API Reference |