mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dataevaluationupdated 25 Aug 2026

cube review

Cube Core is an open-source semantic layer that defines business metrics, dimensions, joins, and access rules once, then serves them through SQL, REST, and GraphQL. It gives BI tools, embedded analytics, and AI agents the same governed meaning for a metric, but it does not include a finished dashboard interface.

+35stars / 7d
Verdict

Our Cube Core install added 4,062 packages and 2,065 MB, then built in 16 seconds without exposing a root test target, so this is a substantial data service that needs its own correctness suite. Choose it when several consumers need the same metrics through SQL, REST, and GraphQL, and your team wants to build the surrounding analytics experience. Choose a finished BI product when dashboards, exploration, and user management matter more than a reusable headless layer.

We ran it

Lab card: what happened when we ran cubeScreenshot of cube (cube.dev)
Install✓ · 260s4062 packages · 2065 MB
Build✓ · 16s
Testsn/ano test script
Repo5449 files~657,145 lines of source · 75.2 MB · 17 CI workflows

Answers from our run

Does cube build from source?

Dependencies installed in 260 seconds (4062 packages), and the build succeeded in 16 seconds. We cloned commit cfffdfe into a clean Debian container with 3 CPUs and no project-specific setup.

Does cube have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use cube?

Teams expecting dashboards in the open-source package: the README says Cube Core is headless and reserves workbooks, dashboards, and other finished BI surfaces for the commercial product.

What are the alternatives to cube?

MetricFlow, Lightdash, Metabase. Our Cube Core install added 4,062 packages and 2,065 MB, then built in 16 seconds without exposing a root test target, so this is a substantial data service that needs its own correctness suite.

Setup3/5Short Docker start, followed by a large model and data-service setup
Docs4/5Clear product split, quick start, recipes, and architecture guides
Community5/5Current release, same-day push, and active issue traffic
Maturity4/5Broad production scope with current correctness reports to test

Discussed on

  1. hnCube.js: Headless Semantic Layer113 points
  2. hnCube.js – Open-Source Analytics API for Building Data Apps93 points
  3. hnShow HN: Cube.js Templates: scaffolding generator for analytics dashboards4 points
  4. hnShow HN: Cube.js Web Analytics3 points
  5. hnShow HN: A Guide on Building Dynamic Dashboards with React3 points

Who it’s for

Data teams that need one metrics model shared by BI tools, applications, and AI agents.
SaaS teams building embedded analytics with their own user interface.
Organizations using SQL warehouses or databases that need caching and governed access rules.
Engineers willing to own a headless data service, its model code, and production data connections.

Who it’s NOT for

Teams expecting dashboards in the open-source package: the README says Cube Core is headless and reserves workbooks, dashboards, and other finished BI surfaces for the commercial product.
Small projects that cannot justify a large dependency tree: our install added 4,062 packages and occupied 2,065 MB.
Buyers who need a root-level test command as an acceptance check: our harness found no test script or target and skipped tests.
Analytics teams that cannot independently verify metric correctness: current reports include roughly doubled multi-stage results and a CubeStore projection panic.
Operators using expiring web-identity credentials for CubeStore on S3 without a mitigation: issue 11622 reports refresh occurring only when the token file changes.
Organizations wanting one repository-wide license declaration: the README gives the client an MIT license and the backend Apache 2.0, while GitHub reports no single detected license.

Setup reality

In our sandbox at commit cfffdfe, yarn installation succeeded in 260 seconds, adding 4,062 packages and using 2,065 MB on disk. The detected build succeeded in 16 seconds. The root exposed no test script or target, so tests were skipped; the checkout also had no tests directory.

The README's trial path uses Docker, ports 4000 and 15432, a mounted configuration folder, and development mode. A useful project then needs data-source credentials, a semantic model, access rules, and a client using SQL, REST, or GraphQL. Production also needs persistent configuration, secrets, logs, and cache planning.

The repository is a 5,449-file monorepo with about 657,145 source lines and 17 CI workflow files. Its 2,065 MB installed footprint is much larger than the 75.2 MB checkout. The root build passed, but the missing root test target means adopters should create query-result checks for their own metrics and data sources.

Cube Core gives many clients one definition of a metric

Cube Core sits between SQL data sources and the tools or applications that ask business questions. A team defines measures, dimensions, joins, and access rules in model code. Cube then exposes that model through SQL, REST, and GraphQL. A dashboard, embedded product screen, or AI agent can ask for the same metric without each client reimplementing its business logic. That is the useful part: consistency becomes a service with an API.

Our checkout at commit cfffdfe contained 5,449 files, roughly 657,145 source lines, and 75.2 MB before dependencies. The repository combines Node packages with a Rust-based CubeStore engine and monorepo tooling. This is enough code to deserve platform ownership, even though the first Docker command looks small. A semantic layer becomes part of the data contract, so changes to joins or measures can alter numbers across every downstream consumer at once.

The open-source edition stops before the dashboard

The README calls Cube Core headless. It provides the semantic layer, APIs, data-source connections, and a relational caching engine, but it does not ship a complete analytics user interface. Teams building embedded analytics may prefer that boundary because they control the product experience. A data group looking for analyst-ready exploration and dashboards will need to build or connect those surfaces, which changes the cost of adoption.

Cube's commercial product adds Analytics Chat, workbooks, dashboards, managed deployment, RBAC, multi-tenancy, and integrations with familiar office and BI tools. The model is compatible between Core and the paid product, according to the README. This is a clear division rather than a hidden limitation. Evaluate Core as infrastructure for other clients. If the organization really wants a finished BI workspace, compare the commercial offering with tools such as Lightdash and Metabase.

What happened when we ran it

Our yarn install succeeded in 260 seconds in a fresh Debian sandbox with 3 CPUs and 8 GB of RAM. It added 4,062 packages and consumed 2,065 MB on disk. That dependency footprint is about 27 times the 75.2 MB checkout size. The install completed, so the weight is a planning fact rather than a failure: local environments, CI caches, and build workers need room for it.

The detected build succeeded in 16 seconds. Tests were skipped because the monorepo root did not expose a test script or target, and the checkout had no tests directory. Seventeen GitHub Actions workflow files show that upstream has automation, but our run did not produce a passing test result or test count. Teams should not turn the absence of a root command into an assumption that metric behavior has been verified for their models.

A useful acceptance suite should query known slices through the same APIs production clients use. Check totals across date ranges, joins that can multiply rows, access rules for different identities, pre-aggregation selection, and behavior after model edits. Our 16-second build proves that the detected build target completed at cfffdfe; it says nothing about whether a company's revenue or retention definition is correct. That responsibility stays with the adopter.

Current correctness reports deserve targeted tests

Issue 11545 reports roughly doubled results for a specific multi-stage measure over longer date ranges. Issue 11647 reports a DataFusion projection panic in CubeStore for a rolling-window rollup query. Another report says development mode's metadata endpoint can hang after a model edit once a query has run. These are specific configurations, not a claim that every query is wrong, but correctness failures are unusually expensive in a metrics layer because downstream clients may repeat the same answer confidently.

Version 1.7.26 was published on 2026-08-24, one day before this review. Its four bug fixes touch CubeStore planning flags, time shifts with pre-aggregations, parentheses in filter templates, and pre-aggregation references. That release activity shows maintainers working directly on query behavior. It also reinforces the need to pin versions and replay known-result queries during upgrades instead of accepting a successful container start as sufficient proof.

Data connections make production harder than the demo

The README's trial command maps ports 4000 and 15432, mounts a configuration directory, and enables development mode. After the browser opens, the real work begins: connect a SQL source, store its credentials, model the data, add access rules, decide which queries need pre-aggregation, and give downstream clients stable endpoints. Production needs development mode removed, secrets managed, configuration persisted, and query behavior observed.

Cube Core says it works with warehouses such as Snowflake, Databricks, and BigQuery, query engines including Presto and Athena, and application databases such as PostgreSQL. Breadth is useful only after testing the chosen driver. Issue 11622, for example, reports CubeStore web-identity credentials for S3 expiring after about 1 hour because refresh depends on the token file changing. An operator using that path should reproduce renewal before trusting unattended cache storage.

Active releases do not remove the need for ownership

The repository was pushed on 2026-08-25 and GitHub reported 1,139 open issues and pull requests. An issue-only search returned 723 open items. Those numbers indicate a busy project with a large support surface, not 1,139 confirmed bugs. The newest release arrived the previous day, and its fixes connect directly to active query and pre-aggregation work. This project is being maintained, but it is also changing quickly.

Cube Core is worth the effort when shared metric definitions prevent repeated modeling across several products. Our 4,062-package install and missing root test target make the operating contract plain: adopters need disciplined builds and their own data assertions. If one dashboard is the only consumer, a full BI tool is simpler. If APIs, embedded views, BI clients, and agents all need the same governed numbers, Cube's headless boundary can justify the extra service.

Alternatives

ProjectWhat it isPick it when
MetricFlowA metrics engine for defining and querying semantic models in code.pick this instead when dbt models and metric definitions are central and you do not need Cube's API and caching stack.
LightdashAn open-source BI application that builds its metrics layer around dbt projects.pick this instead when analysts need a ready browser interface as well as governed metrics.
Metabase gh↗A self-hosted BI product for questions, dashboards, and embedded analytics.pick this instead when fast dashboard delivery matters more than a headless semantic API used across many clients.

What people are saying

  1. [velocity-scout] cube-js/cube
  2. [hackernews] Show HN: Scroll through all 43252003274489856000 Rubik's Cube states

Sources

  1. Cube Core README
  2. Cube Core v1.7.26 release
  3. Multi-stage result issue
  4. CubeStore projection panic issue
  5. CubeStore S3 credential issue

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →