Skip to main content
stardeltstardelt
Open source · Apache 2.0 · Kubernetes-native

Your own data platform. Built new, for how data works now.

Iceberg tables, SQL, pipelines, notebooks, streams and dashboards behind one sign-in, one interface and one API, inside your own Kubernetes.

Iceberg RESTTrinoSpark ConnectKafka (KRaft)Airflow 3OIDCOpenFGARust control plane
stardelt Nova overview: catalogs, recent activity and the platform apps
Architecture

One interface. Open engines. Your infrastructure.

Every engine reads and writes the same Iceberg tables through one catalog. stardelt Nova brings them together.

Nova gives one interface and API over open engines (Trino, Spark, Kafka, Airflow, Jupyter), which all share Apache Iceberg tables, on your Kubernetes, your OIDC provider and your S3 storage.Nova gives one interface and API over open engines (Trino, Spark, Kafka, Airflow, Jupyter), which all share Apache Iceberg tables, on your Kubernetes, your OIDC provider and your S3 storage.

Logos are trademarks of their respective owners; their use does not imply endorsement.

core always installedstarter for small installs, replaceabledefault full profile, switchable per pillaropt-in off until you enable itplug you bring your own

SQL on your lakehouse

Query every table with standard SQL.

Trino coreApache Iceberg coreLakekeeper core

Why: Trino reads Iceberg tables in place and scales out. Lakekeeper is a small Iceberg REST catalog written in Rust, so any Iceberg engine can share the same tables.

Read more →

Storage

Tables live on object storage you choose.

Your S3 storage plugSeaweedFS starter

Why: Enterprises already run object storage, and stardelt uses it. SeaweedFS is there so one node can try everything.

Read more →

Load and connect

Files and sources become tables.

Nova coreConnections core

Why: Loading is a feature of the platform, not a separate tool to buy and operate.

Read more →

Pipelines and schedules

Bronze to silver to gold, on a schedule.

Pipeline resource coreAirflow default

Why: Pipelines are declared in Git and moved between stages. Airflow runs them, with retries and history; the batch pillar switches it off when you use your own scheduler.

Read more →

Spark

Python and Spark jobs without a Spark cluster per person.

Spark Connect default

Why: A thin client talks to a shared Spark server: no spark-submit, no driver on your laptop. It ships with the notebooks pillar.

Read more →

Notebooks

Explore next to the data, then publish and schedule.

JupyterHub default

Why: Notebooks run inside the platform with the person's own permissions, and published ones run as pipeline steps. The notebooks pillar switches them off.

Read more →

Streams

Events in, tables out.

Kafka in KRaft mode opt-inStreamApp resource core

Why: The streaming pillar is opt-in (D26 tier 3). Once it is on, streams are declared like pipelines and land in the same Iceberg tables.

Read more →

Dashboards

Charts on governed tables.

Superset defaultYour BI tool plug

Why: Dashboards query through Trino with the viewer's permissions, so there is no copy of the data. The BI pillar is switchable, and any BI tool can use the same engine.

Read more →

Sign-in and permissions

One sign-in, permissions by team.

Your OIDC provider plugKeycloak starterOpenFGA coreOPA core

Why: You keep the identity provider you already have. OpenFGA records who may use what, and OPA enforces it in every engine.

Read more →

Secrets

No passwords in files.

Your secret store plugOpenBao starter

Why: Secrets come from the store you already run, through External Secrets. OpenBao is the sandbox store for small installs.

Read more →
Why stardelt

Yours. Open. Current.

Three promises that hold from the first install.

Yours

Your cluster, your sign-in, your storage, your law.

  • Runs in your cluster, on storage you choose
  • Any OIDC provider you already run; Nova keeps no passwords
  • No phone-home, no licence server
Sovereignty in detail →

Open

Apache 2.0, open formats, and a real way out.

  • Apache 2.0 across stardelt
  • Iceberg and Parquet at rest
  • Uninstall it and any Iceberg engine still reads your tables
Licences →

Current

No legacy inside: every part is current-generation open source.

  • S3 object storage, not HDFS
  • Apache Iceberg, not Hive-style directories of files
  • Iceberg REST catalog, not Hive Metastore
Read the rule →
See it work

A day with the mobility team.

Taxi trips arrive as a file at 7:00. By 9:00 the team has a modelled table, a daily schedule, lineage and a dashboard, without leaving one interface.

Nova showing a recent load of data into the team catalog as an Iceberg table.

Drop a CSV or connect a source. It lands as an Iceberg table in the team's own catalog.

stardelt.write_df(df, "mobility.bronze.trips", bronze=True)
NovaIcebergLakekeeperyour S3 storage

Why: A file becomes a table with a schema and a history from the first minute, not a folder someone has to remember.

Automate everything

Every screen has an API.

What you click in Nova, you can script, schedule, review in Git, or hand to an AI assistant, always as yourself and with your permissions.

stardelt login
stardelt sql "select * from mobility.silver.yellow_trips limit 5"
stardelt run stardelt mobility-medallion --wait

Read operations only by default. Every call is checked against your groups, exactly as in the interface. API, Python, CLI and MCP →.

Next steps

Run it on one node this afternoon.

git clone https://github.com/stardelt/stardelt-platform
cd stardelt-platform
helm dependency build chart

helm upgrade --install stardelt chart \
--namespace stardelt --create-namespace \
-f chart/values-slim.yaml --wait --timeout 15m

stardelt is pre-alpha and grows in milestones. See what works today and what comes next →