data

Data Pipeline Builder

Build CSV / TSV / JSONL / Parquet transforms, joins, and aggregations as a node pipeline and reuse them as Recipes.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Data Pipeline Builder lets you compose CSV / TSV / JSONL / Parquet cleanup, combination, and aggregation as an ordered node graph. Connect Select Columns, Rename Columns, Sort, Limit, Cast, Deduplicate, Filter Rows, and Null Handling, then add Join, Union, or Group By when needed and finish with CSV, JSONL, or Parquet outputs. Selecting a node shows column names, inferred types, Null / empty counts, and up to 100 rows from that point in the pipeline.

A Pipeline can be saved as a browser-local Recipe for quick reuse or exported as Pipeline JSON for backup, transfer, or Git tracking. Recipes and Pipeline JSON intentionally exclude input File objects and generated output data, so inputs must be selected again when reused. File parsing, transforms, joins, aggregation, previews, Recipe execution, and output generation run locally in the browser, and the app does not upload selected data files to an external server.

Good for

  • Reuse the same column selection, renaming, type conversion, and filtering steps with recurring data files
  • Convert between CSV, JSONL, and Parquet and create several output formats from one processed table
  • Combine tables with Join or Union and summarize them with Group By aggregations
  • Inspect types, Null counts, and actual values at intermediate nodes while building a data workflow
  • Back up or transfer a data transformation graph as Pipeline JSON for another device or Git repository

What it can do

Key capabilities available in this tool.

How to use

  1. Open the tool, add a CSV / TSV, JSONL, or Parquet Input node, and choose a local source file.
  2. Add the transform nodes you need from the palette and connect them in processing order. Select a node to inspect its intermediate preview.
  3. For multiple inputs, add Join or Union. For summaries, add Group By and configure the required aggregations.
  4. Connect CSV, JSONL, or Parquet Output nodes. One upstream table can fan out to several output formats.
  5. Choose Run all outputs and review the generated results. Running the pipeline does not automatically download files.
  6. Save only the output files you need.
  7. Save recurring processing steps as a Recipe, or export Pipeline JSON when you need a portable backup.

Supported

  • Input: CSV / TSV, JSONL, and flat Parquet. UTF-8 is the primary supported encoding for text formats.
  • Basic transforms: Select Columns, Rename Columns, Sort, Limit, Cast, Deduplicate, Filter Rows, and Null Handling. Null and empty strings are treated as different values.
  • Combine: Join supports Inner / Left / Right / Full, while Union combines 2–6 inputs by column name or position.
  • Aggregate: Group By supports Count / Sum / Average / Min / Max. Sum and Average report invalid non-numeric input instead of silently coercing it.
  • Output: CSV, JSONL, and flat Snappy-compressed Parquet. One upstream table can fan out to several Output nodes.
  • Preview: inspect column names, inferred types, Null / empty counts, Parquet physical types, and up to 100 rows. Sort, Join, Group By, and similar transforms process the full upstream table before preview truncation.
  • Persistence: Recipes store the graph and settings in the current browser profile; Pipeline JSON stores nodes, settings, connections, and layout. Input File objects and generated results are excluded.
  • Runtime networking: the standalone HTML uses connect-src 'none', does not download DuckDB-WASM or Apache Arrow at runtime, and does not upload selected files.

Limitations and notes

  • Input formats are CSV / TSV / JSONL / Parquet, and output formats are CSV / JSONL / Parquet.
  • Parquet input is limited to flat schemas; nested or repeated columns are rejected rather than silently flattened.
  • Within the supported flat-schema scope, Parquet input can read Uncompressed, Snappy, and GZIP-compressed pages; Parquet output is flat and Snappy-compressed.
  • UTF-8 is the primary supported text encoding.
  • Sum and Average require numeric values, and Null is treated differently from an empty string.
  • Preview is limited to the first 100 rows, although Sort, Deduplicate, Join, Union, Group By, and similar transforms process the full upstream table before truncation.
  • Because processing is fully local, practical file size depends on browser and device memory.
  • Recipes live in the current browser profile and can disappear when site data is cleared. Use Pipeline JSON for portable backup or transfer.

Frequently asked questions

Are selected data files uploaded to a server?

No. The GitHub Pages version downloads the initial app HTML, but file parsing, transforms, joins, aggregation, previews, Recipe execution, and output generation run locally. The standalone build uses connect-src 'none' and does not upload selected files.

Which file formats are supported?

Inputs are CSV / TSV, JSONL, and Parquet. Outputs are CSV, JSONL, and Parquet. Parquet support targets flat schemas, and Parquet output is flat and Snappy-compressed.

What is the difference between a Recipe and Pipeline JSON?

A Recipe is for quickly reusing a workflow in the same browser. Pipeline JSON is intended for backup, transfer, or Git tracking. Neither stores input File objects or generated results, so source files must be selected again when reused.

Can it read nested Parquet schemas?

No. In v1.0.0, Parquet input targets flat schemas. Nested or repeated columns are rejected rather than silently flattened.

Can it process large files?

Practical file size depends on browser and device memory because processing is local. Sort, Join, Union, Group By, and similar operations process the full upstream data even though the preview shows only 100 rows.

Offline version and source code

The repository generates a single HTML build with Node Editor Core, table utilities, Recipe utilities, and lightweight Parquet reader / writer code embedded. Open the generated dist/index.html directly to load CSV / TSV / JSONL / Parquet, edit Pipelines, preview data, run Recipes, and generate CSV / JSONL / Parquet outputs without a network connection.

View source on GitHub