Moose
Data engineering framework for modern software developers
Moose is an open-source framework for building data-intensive applications using pure TypeScript or Python without the complexity of a traditional data stack.
Why Moose Exists
If you've ever built a data-intensive application, you know the pain:
- Too many tools: Stitching together a modern data stack requires integration of numerous disjointed tools
- Infrastructure complexity: Setting up and maintaining data infrastructure takes time away from building your actual application
- Development experience friction: Traditional data engineering workflows are slow and don't fit into modern development practices (local dev, hot reloading, etc).
- SQL-only processing: Having to use SQL for everything when you'd rather use languages you're already comfortable with
- OLTP Scaling challenges: What works for small workloads (e.g. Postgres, MySQL, etc) often breaks at scale
Moose was created to solve these problems by providing:
- A unified, local-first development experience for building data-intensive applications using pure TypeScript or Python
- Everything you need to build data pipelines, from data capture to consumption, all in one framework
- Designed from the ground up to be easy to understand and easy to use for modern software developers
Get started in minutes
Local-First Development Experience
Moose comes with a pre-configured and fully integrated data stack that runs entirely on your laptop. With one command (moose dev
), you get:
- Analytical database: ClickHouse
- Streaming platform: Redpanda
- Workflow orchestrator: Temporal
This means you can develop and test your entire data pipeline locally, with the same technologies that will run in production, all without configuring complicated infrastructure. Your iterations are fast, just like you're used to with web development.
While Moose starts with these sane defaults, we're actively adding support for more backends:
- Additional data warehouses like Snowflake, BigQuery, and Databricks
- Alternative streaming platforms like Kafka and Kinesis
- Different orchestration tools
Let us know (opens in a new tab) if you'd like to see support for specific platforms in your stack.
Core Concepts
Type-Safe Data Models
Define schemas once in TS/Python that automatically generate ingestion, storage, and API infrastructure
High-Performance Data Ingestion
Auto-validated APIs to capture data into OLAP databases with full type safety
Real-Time Stream Processing
Transform events in-flight using your preferred language, not just SQL
In-Database Transformations
Create materialized views and transform data directly in your OLAP database with SQL blocks
Analytics APIs
Build and expose fully-typed APIs to consume your processed data
Workflow Orchestration
Schedule jobs or trigger on events using simple, language-native workflow definitions
Moose handles the boilerplate integration of the components in your data stack automatically and orchestrates your entire data pipeline for you, so you can focus on writing your application logic.
Why Moose?
Build with the Languages You Already Know
Iterate confidently with a unified local development environment that reflects your production setup.
- Pre-configured and integrated data stack
- Local-first development with hot reloading
- Build using TypeScript, Python, and SQL
Catch Issues at Dev and Build Time
Prevent errors before they happen in production by seeing error highlights in your editor as you type and in your terminal when you hit save.
- Typed data models with runtime validation
- Auto-derived infrastructure to prevent mismatches
- Hot reloading
Language-Native Experience
Model and transform data in the languages you already know, not just SQL.
- Data Models in native TypeScript and Python types
- Realtime transformations as native TypeScript and Python functions
- ORM experience built for analytical workloads (coming soon)
Open Source and Configurable
Easily extend Moose to fit your specific needs and infrastructure.
- Default works with ClickHouse, support for Databricks, Snowflake, BigQuery coming soon
- Toggle modules on and off as needed
- Integrate with your existing workflows and connectors
What Can You Build with Moose?
Moose is ideal for a wide range of data-intensive applications, from real-time analytics to complex data pipelines:
User Facing Analytics
Embed leaderboards, charts, metrics, and other real-time features in your web or mobile apps
BI and Data Warehouses
Collect disparate data sources into an analytical database, produce custom reports, and more
Data Migrations
One-time migration of data from legacy systems to a modern data backend
Event Streaming
Real-time processing of events from Kafka, Redpanda, or other event streaming platforms
ETL Workloads
Repeated batch jobs to collect data from different sources and load them into an analytics environment