Published

Carbon

Connect any source, model it as an ontology, transform it, and operationalize it, analytics, automation and machine learning, under one governed, self-hostable roof. --- Most teams stitch the...

Node

Node

The open-source data integration ecosystem

Connect any source, model it as an ontology, transform it, and operationalize it, analytics, automation and machine learning, under one governed, self-hostable roof.

Built with Next.js PRs Welcome


What is Node?

Most teams stitch their data stack together from a dozen disconnected tools, one for ingestion, one for the warehouse, one for pipelines, one for dashboards, one for ML, one for automation. The seams are where the value leaks out.

Node collapses that stack into a single, governed ecosystem. Bring data in from any source, give it a shared meaning with an ontology, transform it with visual pipelines or notebooks, and put it to work, dashboards, maps, graphs, models and automated workflows, all on top of the same governed data, with full lineage and role-based access throughout.

Open source. Self-hostable. Multi-tenant from the ground up.

Quickstart

Requirements: Node.js 20+, Docker (for Redis), and a Supabase project + Clerk application.

# 1. Clone
git clone https://github.com/describeloai/Node.git
cd Node

# 2. Install dependencies
npm install

# 3. Configure your environment
cp .env.example .env.local
#   → fill in your Supabase, Clerk and service credentials

# 4. Run the full local stack (Next.js app + Redis + workers + queue dashboard)
npm run dev:full

Open http://localhost:3000.

Running pieces individually
npm run dev          # Next.js app only
npm run redis:start  # Redis (via docker-compose)
npm run workers      # Background workers (ingestion, pipelines, ML, automation)
npm run bull-board   # Queue dashboard

Backend services live under services/: kuzu-service (graph engine), jupyterhub (governed notebooks), and ml-runner (model training & serving).

The ecosystem

Everything revolves around your data. Each app operates on the same governed layer, so what you connect once is usable everywhere.

🔌 Connect

  • Data Gateway — connect to databases, warehouses and SaaS sources with live, scheduled sync.
  • Workflow Builder — orchestrate automation visually across a broad catalog of action nodes.

🧬 Model

  • Ontology Manager — define object types, link types and action types to give your data shared meaning.
  • Object Explorer — search and browse objects across every type from one surface.

⚙️ Transform

  • Data Pipeline — build batch and streaming pipelines on Spark, DataFusion or external compute.
  • Dataset — a unified studio to browse, inspect, filter and iterate on tabular data.
  • Jupyter — governed notebooks for analytics, ML and ETL, with a native dataset SDK.

📊 Operate & analyze

  • Dashboard — interactive dashboards over object and time-series data.
  • Lineage — explore relationships and data lineage on an infinite graph canvas.
  • Graph Designer — model and investigate connections across your data.
  • Map — geospatial and geotemporal analysis across space and time.
  • Notepad — rich documents with embedded charts, data widgets and templated reports.

🤖 Predict

  • Training Studio — train, fine-tune, evaluate and serve machine-learning models on your data.

Architecture

  • Frontend — Next.js (App Router), single-page workspace shell hosting every app.
  • Data & auth — Supabase (Postgres + RLS) for governed, tenant-isolated data; Clerk for authentication.
  • Async compute — a Redis/BullMQ worker fleet drives ingestion, pipeline execution, automation and ML jobs.
  • Serviceskuzu-service (embedded graph), jupyterhub (per-workspace notebooks), ml-runner (Python training/serving).
  • SDK — a Python transforms-style SDK bridges notebooks and datasets.

Contributing

Contributions are welcome — whether it's a connector, a bug fix, docs, or a new app.

  1. Fork the repo and create a branch.
  2. Make your change (npm run lint and npm test before pushing).
  3. Open a pull request describing what and why.