Compare
MooseStack is EOL: hypequery vs Moose for ClickHouse
MooseStack has reached end of life and its repository is archived. Compare the remaining architecture with hypequery, then use the migration guide to move typed ClickHouse queries and APIs.
Decision type
Architecture and workflow fit
Audience
TypeScript teams building on ClickHouse
Outcome
Choose a path and move into implementation
Project status
Adding typed queries and APIs to a ClickHouse you already run
Schema source
Introspected from your live ClickHouse schema
Migration boundary
Typed queries, semantic datasets, APIs, React hooks, and MCP
Scope
Actively maintained TypeScript packages inside your application
What this page is for
Use this page when the real question is how one tool changes the shape of your ClickHouse application code, not just which syntax looks nicer.
What this page is not
It is not a broad ecosystem roundup. It stays narrow on the tradeoff a ClickHouse-heavy TypeScript team is actually deciding.
Recommended next move
If the tradeoff already looks clear, stop reading comparisons and test the fit against one real query in your own schema.
MooseStack has reached end of life
The decision is no longer between two actively maintained projects. The MooseStack maintainers state that MooseStack has reached end of life and is no longer actively maintained, and GitHub shows the repository as archived and read-only. Read the official MooseStack EOL statement on GitHub.
That means we do not recommend starting a new production analytics backend on MooseStack. Existing users should first decide which parts of Moose they actually need to replace: ClickHouse schema management, streaming ingestion, workflows, typed query APIs, or the agent-facing development harness. hypequery covers the typed ClickHouse query, semantic layer, API, React, and MCP portion; it does not attempt to replace Redpanda, Temporal, or a migration system.
For a step-by-step inventory and mapping, use the MooseStack to hypequery migration guide.
What hypequery replaces
If your Moose application used typed data models and query APIs to power a TypeScript product, hypequery provides the active, narrower path:
- generate TypeScript types from the ClickHouse schema that exists now;
- move reusable analytics into typed datasets, dimensions, measures, and metrics;
- expose those contracts through validated HTTP routes and OpenAPI;
- consume them through typed React hooks;
- expose governed metrics and dataset queries through MCP tools for AI agents;
- enforce multi-tenant scope from trusted runtime context.
The direction of schema ownership changes. Moose was code-first infrastructure: code declared tables and pushed schema into ClickHouse. hypequery is database-first at the physical layer and code-first at the semantic layer: your migration tool owns ClickHouse DDL, the hypequery CLI introspects the live result, and TypeScript owns the product-facing analytics contract.
What hypequery does not replace
hypequery is not a streaming or workflow platform. Keep or choose dedicated tools for:
- Kafka or Redpanda ingestion;
- Temporal workflows and scheduled orchestration;
- ClickHouse DDL migrations;
- infrastructure provisioning and deployment of ClickHouse itself.
This smaller boundary is deliberate. It lets teams migrate the application-facing analytics layer without rebuilding ingestion and infrastructure at the same time.
Current comparison
| Area | MooseStack at EOL | hypequery |
|---|---|---|
| Maintenance | End of life; repository archived | Actively developed open-source packages |
| Physical schema | Declared in Moose code and migrated into ClickHouse | Introspected from the live ClickHouse schema |
| Semantic model | Code-first data models and APIs | TypeScript datasets, dimensions, measures, metrics, and relationships |
| Query builder | Moose query layer | ClickHouse-native typed builder with FINAL, LIMIT BY, percentiles, argMax, CTEs, and expressions |
| HTTP APIs | Framework-managed query APIs | Validated Serve routes and OpenAPI inside your app |
| React | Application-owned integration | Typed TanStack Query hooks |
| Agents | Moose development harness and MCP | Governed dataset and metric MCP server |
| Streaming and workflows | Redpanda and Temporal modules | Bring your existing tools |
Migration shape
The safest migration is incremental:
- Freeze new Moose-specific surface and export the current ClickHouse DDL, tables, and materialized views.
- Assign schema migrations, ingestion, and workflows to explicit tools outside the application query layer.
- Generate hypequery types from the live ClickHouse schema.
- Port one read-only query at a time and compare generated SQL and results.
- Promote shared calculations into datasets and metrics.
- Move API consumers to Serve routes, then React hooks or MCP tools.
- Remove the Moose runtime only after traffic, jobs, and deployment dependencies have been accounted for.
The clients can coexist during the transition, so there is no reason to combine the infrastructure and query migrations into one cutover.
Recommendation
For a new TypeScript application on ClickHouse, use an actively maintained query and semantic layer rather than adopting an archived framework. hypequery is the fit when you already have or want to keep control of ClickHouse and need typed application queries, multi-tenant analytics APIs, React hooks, and MCP tools.
If you need the full infrastructure scope Moose once provided, pair hypequery with the dedicated ingestion, workflow, and migration tools your team is prepared to operate. Start with the migration guide, check the current capability matrix, and test the quick start against one real table.
Decision checkpoint
If the tradeoff is already clear, move into implementation
Most teams do not need another round of comparison content after this point. The better test is whether the workflow holds up on your own schema and your own query complexity.
Related content
Continue into implementation
FAQ
Are hypequery and Moose solving the same problem?
They overlap on typed ClickHouse queries and APIs, but Moose also owned schema, streaming, workflows, and a development runtime. hypequery replaces the application-facing analytics layer; dedicated tools should own the other responsibilities.
Should I choose MooseStack for a new project?
No. MooseStack’s maintainers announced end of life and archived the repository. Use the historical architecture as migration context, not as a new production dependency.
Can hypequery replace every MooseStack module?
No. hypequery covers typed ClickHouse queries, semantic datasets, APIs, React hooks, multi-tenancy, and MCP. Keep or choose separate tools for DDL migrations, streaming ingestion, and workflow orchestration.
Next step
Move from evaluation into a typed ClickHouse workflow
Generate schema types, define your first reusable query, and decide whether it should run locally or over HTTP.