Skip to content

smelt

Modern data transformation framework.

smelt is a data transformation framework that separates logical transformation definitions from physical execution planning. Unlike dbt which uses Jinja templates, smelt parses and understands the semantics of your SQL, enabling:

  • Automatic incrementalization — the framework analyzes what's safe to run incrementally
  • Cross-engine deployment — split work across DuckDB, Spark, Postgres, etc.
  • Static analysis — type checking, rich editor support, and semantic validation
  • Rule-based optimization — automatic rewrites with learning from history

Quick Example

-- models/daily_revenue.sql
---
name: daily_revenue
materialization: table
incremental:
  enabled: true
  event_time_column: order_date
  partition_column: order_date
tags: [revenue, daily]
---

SELECT
  order_date,
  customer_id,
  SUM(amount) as daily_revenue
FROM smelt.ref('orders')
WHERE order_date IS NOT NULL
GROUP BY 1, 2
# Run all models
smelt run

# Run incrementally (only process new data)
smelt run --event-time-start 2025-01-01 --event-time-end 2025-01-02

# Preview what would run
smelt run --dry-run --verbose

Key Differentiators from dbt

Aspect dbt smelt
Model definition Jinja templates Parsed semantic models
Incrementalization Manual is_incremental() Automatic semantic analysis
Type checking None (runtime errors) Static analysis with LSP
Cross-engine One target per project Split work across engines
Optimization Manual Rule-based with learning

Editor Experience

smelt's LSP gives you real-time feedback as you write SQL -- diagnostics, go-to-definition, hover schemas, completions, and more. See the full Editor Features showcase.

Catch errors as you type

Documentation

New to smelt? Start with Installation and the Quickstart guide.

Understanding smelt: Learn how smelt works and see how a project is structured.

Building pipelines: The Guide covers models, sources, materializations, incremental processing, and more.

Reference: Full CLI command reference, project configuration, and language specification.