← All posts
by Arif Aslam 4 min read

How to Analyze a CSV File Without Uploading It Anywhere

Most online CSV tools require you to upload your file to a server. That means your data leaves your device, passes through someone else's infrastructure, and you have to trust that it's handled properly. For sensitive business data, financial records, or personal information, that's a real concern.

There's a better approach: analyze CSV files entirely in your browser, with no upload at all.

How it works

ExploreMyData uses DuckDB WASM, a full SQL database engine compiled to WebAssembly. When you open the app, DuckDB loads and runs entirely inside your browser tab. When you drag a CSV file onto the page, the browser reads it using the File API and passes it to DuckDB. No network request is made. The file never leaves your device.

Step by step

  1. Open exploremydata.com/app in any modern browser.
  2. Drag your CSV file onto the page, or click to browse.
  3. Your data appears instantly in a scrollable grid. Clicking a column header sorts the view.
  4. Open the Column Explorer on any column to see histograms, value distributions, and summary statistics.
  5. To transform the data, click the green + in the Pipeline panel and pick an operation from one of the seven groups. There is also a "Search transforms..." box above the + if you already know what you want.
  6. When you're done, click Export to download your transformed data as a new CSV.

What you can do with your CSV

ExploreMyData supports 37 operations organized into groups:

  • Columns (7): Select Columns, Rename Columns, Add Column, Delete Columns, Copy Columns, Combine Columns, Split Column
  • Transform (8): Update Values, Find & Replace, Text Transform, Math, Convert Type, Extract Text, Regex Capture, Bulk Replace
  • Filter & Sort (5): Filter, Limit Rows, Top / Bottom Rows, Sample Rows, Remove Duplicates
  • Date (3): Extract Date Part, Increment Date, Date Difference
  • Aggregate (7): Group & Aggregate, Pivot, Unpivot, Window Function, Rolling Window, Smallest, Largest
  • Data (6): Join, Union All, Unnest, Fill Missing, JSON Extract, Add Rows
  • Advanced (1): SQL Query, for raw DuckDB SQL

Note what is not in that list: there is no standalone Sort operation. Sorting happens in three other places. Clicking a grid header sorts the view you are looking at, Limit Rows and Top / Bottom Rows take "Sort by" fields, and the SQL Query operation accepts a plain ORDER BY.

A five-minute example

Say you have sales_2026.csv, 50,000 order lines, and you only need the West region rows for a meeting in ten minutes. Drop the file on the page. Click the green + in the Pipeline panel and select Filter from the Filter & Sort group. Set the condition to region is West, then apply.

The step card in the pipeline shows the SQL it generated for you:

SELECT * FROM "sales_2026" WHERE "region" = 'West'

The grid drops from 50,000 rows to the 12,438 West rows. Click Export, pick CSV, and you have a clean file to send. Nothing was uploaded, and the original file on disk is untouched.

Pipeline: chain operations together

Every operation you apply becomes a step in a pipeline. The pipeline sidebar shows each step with the SQL it generated. You can delete steps, and the pipeline rebuilds automatically. This makes your analysis reproducible: you can see exactly what transformations were applied and in what order.

AI-powered transforms

If you add an API key in Settings, you can describe transformations in plain English. Type something like "add a column with the quarter from the date column" in the pipeline input, and the AI generates the SQL for you. You can review and edit the SQL before applying it. Only column names and types are sent to the API: your actual data rows never leave the browser.

Why this matters

When your data never leaves your browser there's no upload latency, no server costs, and no privacy risk. DuckDB WASM handles millions of rows comfortably. For quick data exploration, it's faster and more private than any server-based tool.

The trade-off is that everything runs in your tab's memory. The app accepts files up to 1GB and warns you past 100MB, which is the point where load times and memory pressure start to show. Under 100MB you will not notice the browser is doing the work at all. Above that, expect a wait on load, and give the tab room by closing other heavy pages.

Learn more about the CSV Viewer →

AA

Arif Aslam

Staff engineer in Bangalore. By day at Mammoth Analytics; building ExploreMyData on the side. More on my author page or LinkedIn.

Try it yourself

No sign-up, no upload, no tracking.

Open ExploreMyData