MakeMyStats
Blog
Back to blog

Welcome to MakeMyStats

An introduction to MakeMyStats — a suite of free, browser-based CSV, JSON, and spreadsheet tools that never upload your files.

Try /csv-viewer

MakeMyStats is a suite of free data tools that run entirely in your browser. There are no accounts, no uploads, and no server processing your files. If you work with CSV exports, JSON payloads, or Excel workbooks and you're tired of pasting sensitive data into random converter websites, this is for you.

Why browser-based?

Most online data tools follow the same pattern: pick a file, upload it, wait, download the result. Somewhere in the middle, your file passes through infrastructure you can't inspect. The CSV you're "just converting to JSON" might contain customer emails, internal revenue figures, API keys in a config export, or medical record identifiers — and now it's sitting in a third party's logs, caches, or cloud-provider defaults.

MakeMyStats removes the round trip. Every parse, transform, validation, and download runs in the browser tab you opened. You can verify this directly: open your browser's DevTools, switch to the Network tab, drop a file onto any tool, and watch for zero data-transfer requests. The file reference comes from the File API, parsing happens in JavaScript (often inside a Web Worker), and downloads are produced via Blob URLs — the browser synthesizes an in-memory file you save to disk. No server is involved because there isn't one.

What's here

The current suite covers the three formats most data people touch every day — CSV, JSON, and Excel — plus the bridges between them.

CSV workflows. The CSV Viewer opens a file in a virtualized table that handles hundreds of thousands of rows without freezing, with auto-detected delimiters (comma, tab, semicolon, pipe), inferred column types, per-column sort, and a live filter. When the raw viewer isn't enough, there are focused tools: CSV Dedupe for finding duplicate rows across a chosen subset of columns, CSV Filter for building multi-condition pipelines with AND/OR logic, CSV Merger for stacking or SQL-style joining multiple files, and CSV Column Split for breaking single columns apart with literal or regex delimiters.

JSON workflows. The JSON Formatter pretty-prints, minifies, and validates with exact line:col errors. The JSON Viewer gives you a collapsible tree with JSON Pointer paths on hover. Beyond display, there's a structural JSON Diff (order-insensitive on object keys), a JSON Schema Validator that reports errors with JSON Pointer paths, a JSON Path evaluator for testing expressions against your data, a JSON to TypeScript converter that infers interfaces or type aliases, and a JSON to SQL generator that produces dialect-aware INSERT statements.

Format converters. Most conversions are bidirectional two-pane tools with live updates: JSON ↔ YAML, JSON ↔ XML, TSV ↔ CSV, CSV to JSON, JSON to CSV, CSV to Excel, and Excel to CSV. The Base64 Data URL tool handles the other common encoding round-trip developers run into.

Built for real files, not toy files

A lot of online tools quietly fall over once your file crosses a few megabytes. MakeMyStats is architected around the opposite assumption — that data files get big, and that's exactly when you need the tool to not break.

Under the hood, CSV parsing uses PapaParse in streaming mode with a Web Worker, so parsing a 100MB CSV doesn't freeze the tab. Tables are virtualized using react-window, which only renders the rows currently on screen — so scrolling through a 500K-row viewer stays at 60fps instead of producing a multi-second layout thrash. Excel read/write uses SheetJS, which supports multi-sheet workbooks and produces real .xlsx files that open cleanly in Excel and LibreOffice.

The practical ceiling is your browser's available memory. On a typical laptop, tools handle files up to about 500MB comfortably. For files larger than that — multi-gigabyte logs, for instance — command-line tools (jq, csvkit, ssconvert) remain the right answer. For everything smaller, browser-native is usually faster than the upload/process/download path online converters take.

Built for people who actually work with data

Most tools in this suite started as something I wanted to exist. Quick type inference from a JSON response. A CSV dedupe step that lets me pick which columns count as the key. A JSON Schema validator that gives me a JSON Pointer path instead of a vague error. A CSV-to-Excel converter that doesn't mangle ZIP codes.

Everything is designed to be a single focused operation. The converters don't try to be spreadsheets. The viewers don't try to be databases. If you need to slice a CSV and then join it with another, you chain tools — filter in CSV Filter, then merge in CSV Merger, then check for duplicates in CSV Dedupe. Each tool runs in-browser, so the intermediate files never leave your machine between steps.

What's not here (and why)

MakeMyStats is client-side only, which means a few things aren't possible and won't be added:

  • Persistent accounts or saved files. There's no server to store anything on. If you need version history for data transforms, use git.
  • Collaborative editing. Same reason — no server to coordinate multiple clients.
  • Lookups against remote datasets. Country-code tables, stock tickers, currency conversion. These require a network call to a data source, and adding one would break the "your data never leaves your browser" guarantee.

The trade-off is by design. The privacy story is only real if the architecture enforces it.

Getting started

The fastest way in: pick the format you're working with and drop a file on the matching tool.

Every tool has a two-pane or drop-zone layout, handles paste as well as file drop, and includes a download button that produces a properly formatted output file. No sign-up, no rate limits, no uploads.